abiao лет назад: 5
Родитель
Сommit
1d7296372c

+ 10 - 5
go/gopath/src/fohow.com/apps/models/product_model/product.go

@@ -88,6 +88,11 @@ type Product struct {
 	VideoState bool   `orm:"column(video_state)"                                        json:"video_state"`
 	VideoUrl   string `orm:"column(video_url)"                       json:"video_url"` // varchar(255)
 	VideoImg   string `orm:"-"                       json:"video_img"`                 // varchar(255)
+	//规格相关
+	RelateProductId string `orm:"column(relate_product_id)"                          json:"relate_product_id"` // varchar(255)
+	ShowFlag        bool   `orm:"column(show_flag)"                          json:"-"`                         // varchar(255)
+	SizeId          string `orm:"column(size_id)"                          json:"size_id"`                     // varchar(255)
+	ColorId         string `orm:"column(color_id)"                          json:"color_id"`                   // varchar(255)
 }
 
 //获取最新推荐商品
@@ -100,7 +105,7 @@ func GetLatest(page, perPage, recommend int64, useCache bool) (products []*Produ
 	}
 	o := orm.NewOrm()
 	_, err := o.QueryTable(new(Product)).Filter("status", 1).
-		Filter("recommend__gt", recommend).
+		Filter("recommend__gt", recommend).Filter("show_flag", true).
 		OrderBy("-recommend", "-created_at").
 		Limit(perPage, (page-1)*perPage).
 		All(&products)
@@ -127,7 +132,7 @@ func GetLatestCount(recommend int64, useCache bool) int64 {
 	}
 	item := new(Product)
 	o := orm.NewOrm()
-	count, _ := o.QueryTable(item).Filter("recommend__gt", recommend).Filter("status", 1).Count()
+	count, _ := o.QueryTable(item).Filter("recommend__gt", recommend).Filter("show_flag", true).Filter("status", 1).Count()
 
 	cache.Cache.Put(k, count, 10*time.Minute)
 	return count
@@ -159,7 +164,7 @@ func GetProductsByCatId(cId, page, perPage int64, useCache bool) (products []*Pr
 		}
 	}
 	o := orm.NewOrm()
-	qs := o.QueryTable(new(Product)).Filter("status", 1)
+	qs := o.QueryTable(new(Product)).Filter("status", 1).Filter("show_flag", true)
 	if cId != 0 {
 		qs = qs.Filter("category_id", cId)
 	} else {
@@ -196,7 +201,7 @@ func GetProductCountByCatId(cId int64, useCache bool) int64 {
 	} else {
 		qs = qs.Exclude("category_id", 3) //3为审核类别,暂写死
 	}
-	count, _ := qs.Filter("status", 1).Count()
+	count, _ := qs.Filter("status", 1).Filter("show_flag", true).Count()
 
 	cache.Cache.Put(k, count, 10*time.Minute)
 	return count
@@ -213,7 +218,7 @@ func GetSeckillProducts(queryDate time.Time, useCache bool) (list []*Product) {
 	sql := `
 		select * from
 		products
-		where DATE_FORMAT(DATE_ADD(seckill_start,INTERVAL 8 HOUR),'%Y-%m-%d') = ? and status = 1;
+		where DATE_FORMAT(DATE_ADD(seckill_start,INTERVAL 8 HOUR),'%Y-%m-%d') = ? and status = 1 and show_flag = 1;
 		`
 
 	_, err := orm.NewOrm().Raw(sql, queryDate.Format("2006-01-02")).QueryRows(&list)

+ 0 - 134
go/gopath/src/fohow.com/apps/models/product_model/product_attr.go

@@ -1,134 +0,0 @@
-package product_model
-
-import (
-// "fmt"
-// "time"
-
-// "github.com/astaxie/beego"
-// "github.com/astaxie/beego/orm"
-)
-
-const (
-	product_attrs_tablename       = "product_attrs"
-	product_attr_keys_tablename   = "product_attr_keys"
-	product_attr_values_tablename = "product_attr_values"
-)
-
-// type ProductAttr struct {
-// 	Id                  int64             `orm:"column(id);pk"                                  json:"id"`                     // int(11)
-// 	ProductId           int64             `orm:"column(product_id)"                             json:"product_id"`             // int(11)
-// 	ProductAttrKeyId    int64             `orm:"column(product_attr_key_id)"                    json:"product_attr_key_id"`    // int(11)
-// 	ProductAttrValueId  int64             `orm:"column(product_attr_value_id)"                  json:"product_attr_value_id"`  // int(11)
-// 	CustomAttrValueName string            `orm:"column(custom_attr_value_name);null"            json:"custom_attr_value_name"` // varchar(64)
-// 	CustomAttrValuePic  string            `orm:"column(custom_attr_value_pic);null"             json:"custom_attr_value_pic"`  // varchar(20)
-// 	UseCustom           int64             `orm:"column(use_custom);null"                        json:"use_custom"`             // tinyint(1)
-// 	Status              int64             `orm:"column(status);null"                            json:"status"`                 // tinyint(1)
-// 	CreatedAt           time.Time         `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`                      // datetime
-// 	UpdatedAt           time.Time         `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`                      // datetime
-// 	ProductAttrKey      *ProductAttrKey   `orm:"-"                            json:"attr_key"`
-// 	ProductAttrValue    *ProductAttrValue `orm:"-"                            json:"attr_value"`
-// }
-
-// func (self *ProductAttr) TableName() string {
-// 	return product_attrs_tablename
-// }
-
-// type ProductAttrKey struct {
-// 	Id        int64     `orm:"column(id);pk"                                  json:"id"`     // int(11)
-// 	Name      string    `orm:"column(name)"                                   json:"name"`   // varchar(20)
-// 	Status    int64     `orm:"column(status);null"                            json:"status"` // tinyint(1)
-// 	CreatedAt time.Time `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`      // datetime
-// 	UpdatedAt time.Time `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`      // datetime
-// }
-
-// func (self *ProductAttrKey) TableName() string {
-// 	return product_attr_keys_tablename
-// }
-
-// type ProductAttrValue struct {
-// 	Id               int64     `orm:"column(id);pk"                                  json:"id,omitempty"`        // int(11)
-// 	ProductAttrKeyId int64     `orm:"column(product_attr_key_id)"                    json:"product_attr_key_id"` // int(11)
-// 	Name             string    `orm:"column(name)"                                   json:"name"`                // varchar(64)
-// 	Pic              string    `orm:"column(pic)"                                    json:"pic"`                 // varchar(255)
-// 	Color            string    `orm:"column(color)"                                  json:"color"`               // varchar(64)
-// 	CreatedBy        int64     `orm:"column(created_by);null"                        json:"created_by"`          // int(11)
-// 	Status           int64     `orm:"column(status);null"                            json:"status"`              // tinyint(1)
-// 	CreatedAt        time.Time `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`                   // datetime
-// 	UpdatedAt        time.Time `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`                   // datetime
-// }
-
-// func (self *ProductAttrValue) TableName() string {
-// 	return product_attr_values_tablename
-// }
-
-// // 根据product_attr_values表Id查找记录
-// func GetProductAttrValue(id int64) (v *ProductAttrValue) {
-// 	v = &ProductAttrValue{}
-// 	if err := orm.NewOrm().QueryTable(v).Filter("id", id).Limit(1).
-// 		One(v); err != nil {
-// 		beego.BeeLogger.Error("get product attr value by record_id=%s err=%s", id, err)
-// 		return nil
-// 	}
-// 	return v
-// }
-
-// // 根据product_attr_keys表Id查找记录
-// func GetProductAttrKey(id int64) (k *ProductAttrKey) {
-// 	k = &ProductAttrKey{}
-// 	if err := orm.NewOrm().QueryTable(k).Filter("id", id).Limit(1).
-// 		One(k); err != nil {
-// 		beego.BeeLogger.Error("get product attr key by record_id=%s err=%s", id, err)
-// 		return nil
-// 	}
-// 	return k
-// }
-
-// // 根据product_attrs表Id查找记录
-// func GetProductAttr(id int64) (pa *ProductAttr) {
-// 	pa = &ProductAttr{}
-// 	if err := orm.NewOrm().QueryTable(pa).Filter("id", id).Filter("status", 1).Limit(1).
-// 		One(pa); err != nil {
-// 		beego.BeeLogger.Error("get product attr by record_id=%s err=%s", id, err)
-// 		return nil
-// 	}
-// 	return pa
-// }
-
-// // 根据商品Id和keyId找出商品对应某个属性Key的所有属性记录
-// func GetProductAttrsByKeyId(pId, kId int64) (items []*ProductAttr) {
-// 	o := orm.NewOrm()
-// 	item := new(ProductAttr)
-// 	_, err := o.QueryTable(item).Filter("product_attr_key_id", kId).
-// 		Filter("product_id", pId).Filter("status", 1).
-// 		All(&items)
-// 	if err != nil {
-// 		beego.BeeLogger.Error("GetProductAttrs(%d) err=%s", pId, err)
-// 	}
-// 	return items
-// }
-
-// func GetProductGroupAttrs(pId int64) (items []*ProductAttr) {
-// 	var j ProductAttr
-// 	o := orm.NewOrm()
-// 	var sql string
-// 	sql = fmt.Sprintf("SELECT * FROM `%s` WHERE product_id=? and status=1 GROUP BY product_attr_key_id", j.TableName())
-// 	_, err := o.Raw(sql, pId).QueryRows(&items)
-// 	if err != nil {
-// 		beego.BeeLogger.Error("GetProductGroupAttrs pId[%d], err=[%s] ", pId, err)
-// 		return nil
-// 	}
-// 	return items
-// }
-
-// func GetAttrCustomPic(vId int64, vPic string) string {
-// 	if vPic == "" {
-// 		return fmt.Sprintf("%s/v5/images/logo_32.jpg",
-// 			beego.AppConfig.String("RailsHost"))
-// 	} else {
-// 		return fmt.Sprintf("%s/product_attr_custom_pic/%d/%s",
-// 			beego.AppConfig.String("AliOssImgHost"),
-// 			vId,
-// 			vPic)
-// 	}
-
-// }

+ 139 - 0
go/gopath/src/fohow.com/apps/models/product_model/product_attr_bal.go_bakl

@@ -0,0 +1,139 @@
+package product_model
+
+import (
+	"fmt"
+
+	// "fmt"
+// "time"
+	"github.com/astaxie/beego"
+
+	// "github.com/astaxie/beego"
+// "github.com/astaxie/beego/orm"
+	"github.com/astaxie/beego/orm"
+	"time"
+)
+
+const (
+	product_attrs_tablename       = "product_attrs"
+	product_attr_keys_tablename   = "product_attr_keys"
+	product_attr_values_tablename = "product_attr_values"
+)
+
+type ProductAttr struct {
+	Id                  int64             `orm:"column(id);pk"                                  json:"id"`                     // int(11)
+	ProductId           int64             `orm:"column(product_id)"                             json:"product_id"`             // int(11)
+	ProductAttrKeyId    int64             `orm:"column(product_attr_key_id)"                    json:"product_attr_key_id"`    // int(11)
+	ProductAttrValueId  int64             `orm:"column(product_attr_value_id)"                  json:"product_attr_value_id"`  // int(11)
+	CustomAttrValueName string            `orm:"column(custom_attr_value_name);null"            json:"custom_attr_value_name"` // varchar(64)
+	CustomAttrValuePic  string            `orm:"column(custom_attr_value_pic);null"             json:"custom_attr_value_pic"`  // varchar(20)
+	UseCustom           int64             `orm:"column(use_custom);null"                        json:"use_custom"`             // tinyint(1)
+	Status              int64             `orm:"column(status);null"                            json:"status"`                 // tinyint(1)
+	CreatedAt           time.Time         `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`                      // datetime
+	UpdatedAt           time.Time         `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`                      // datetime
+	ProductAttrKey      *ProductAttrKey   `orm:"-"                            json:"attr_key"`
+	ProductAttrValue    *ProductAttrValue `orm:"-"                            json:"attr_value"`
+}
+
+func (self *ProductAttr) TableName() string {
+	return product_attrs_tablename
+}
+
+type ProductAttrKey struct {
+	Id        int64     `orm:"column(id);pk"                                  json:"id"`     // int(11)
+	Name      string    `orm:"column(name)"                                   json:"name"`   // varchar(20)
+	Status    int64     `orm:"column(status);null"                            json:"status"` // tinyint(1)
+	CreatedAt time.Time `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`      // datetime
+	UpdatedAt time.Time `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`      // datetime
+}
+
+func (self *ProductAttrKey) TableName() string {
+	return product_attr_keys_tablename
+}
+
+type ProductAttrValue struct {
+	Id               int64     `orm:"column(id);pk"                                  json:"id,omitempty"`        // int(11)
+	ProductAttrKeyId int64     `orm:"column(product_attr_key_id)"                    json:"product_attr_key_id"` // int(11)
+	Name             string    `orm:"column(name)"                                   json:"name"`                // varchar(64)
+	Pic              string    `orm:"column(pic)"                                    json:"pic"`                 // varchar(255)
+	Color            string    `orm:"column(color)"                                  json:"color"`               // varchar(64)
+	CreatedBy        int64     `orm:"column(created_by);null"                        json:"created_by"`          // int(11)
+	Status           int64     `orm:"column(status);null"                            json:"status"`              // tinyint(1)
+	CreatedAt        time.Time `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`                   // datetime
+	UpdatedAt        time.Time `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`                   // datetime
+}
+
+func (self *ProductAttrValue) TableName() string {
+	return product_attr_values_tablename
+}
+
+// 根据product_attr_values表Id查找记录
+func GetProductAttrValue(id int64) (v *ProductAttrValue) {
+	v = &ProductAttrValue{}
+	if err := orm.NewOrm().QueryTable(v).Filter("id", id).Limit(1).
+		One(v); err != nil {
+		beego.BeeLogger.Error("get product attr value by record_id=%s err=%s", id, err)
+		return nil
+	}
+	return v
+}
+
+// 根据product_attr_keys表Id查找记录
+func GetProductAttrKey(id int64) (k *ProductAttrKey) {
+	k = &ProductAttrKey{}
+	if err := orm.NewOrm().QueryTable(k).Filter("id", id).Limit(1).
+		One(k); err != nil {
+		beego.BeeLogger.Error("get product attr key by record_id=%s err=%s", id, err)
+		return nil
+	}
+	return k
+}
+
+// 根据product_attrs表Id查找记录
+func GetProductAttr(id int64) (pa *ProductAttr) {
+	pa = &ProductAttr{}
+	if err := orm.NewOrm().QueryTable(pa).Filter("id", id).Filter("status", 1).Limit(1).
+		One(pa); err != nil {
+		beego.BeeLogger.Error("get product attr by record_id=%s err=%s", id, err)
+		return nil
+	}
+	return pa
+}
+
+// 根据商品Id和keyId找出商品对应某个属性Key的所有属性记录
+func GetProductAttrsByKeyId(pId, kId int64) (items []*ProductAttr) {
+	o := orm.NewOrm()
+	item := new(ProductAttr)
+	_, err := o.QueryTable(item).Filter("product_attr_key_id", kId).
+		Filter("product_id", pId).Filter("status", 1).
+		All(&items)
+	if err != nil {
+		beego.BeeLogger.Error("GetProductAttrs(%d) err=%s", pId, err)
+	}
+	return items
+}
+
+func GetProductGroupAttrs(pId int64) (items []*ProductAttr) {
+	var j ProductAttr
+	o := orm.NewOrm()
+	var sql string
+	sql = fmt.Sprintf("SELECT * FROM `%s` WHERE product_id=? and status=1 GROUP BY product_attr_key_id", j.TableName())
+	_, err := o.Raw(sql, pId).QueryRows(&items)
+	if err != nil {
+		beego.BeeLogger.Error("GetProductGroupAttrs pId[%d], err=[%s] ", pId, err)
+		return nil
+	}
+	return items
+}
+
+func GetAttrCustomPic(vId int64, vPic string) string {
+	if vPic == "" {
+		return fmt.Sprintf("%s/v5/images/logo_32.jpg",
+			beego.AppConfig.String("RailsHost"))
+	} else {
+		return fmt.Sprintf("%s/product_attr_custom_pic/%d/%s",
+			beego.AppConfig.String("AliOssImgHost"),
+			vId,
+			vPic)
+	}
+
+}

+ 136 - 0
go/gopath/src/fohow.com/apps/models/product_model/product_attrl.go

@@ -0,0 +1,136 @@
+package product_model
+
+import (
+	"fmt"
+
+	// "fmt"
+	// "time"
+	"github.com/astaxie/beego"
+
+	// "github.com/astaxie/beego"
+	// "github.com/astaxie/beego/orm"
+	"github.com/astaxie/beego/orm"
+	"time"
+)
+
+const (
+	product_attrs_tablename        = "product_attrs"
+	product_attr_keys_tablename    = "product_attr_keys"
+	product_attr_configs_tablename = "product_attr_configs"
+)
+
+type ProductAttr struct {
+	Id                 int64             `orm:"column(id);pk"                                  json:"id"`                    // int(11)
+	ProductAttrKeyId   int64             `orm:"column(product_attr_key_id)"                    json:"product_attr_key_id"`   // int(11)
+	Name               string            `orm:"column(name);null"            json:"name"`                                    // varchar(64)
+	CustomAttrValuePic string            `orm:"column(custom_attr_value_pic);null"             json:"custom_attr_value_pic"` // varchar(20)
+	Recommend          int64             `orm:"column(use_custom);null"                        json:"use_custom"`            // tinyint(1)
+	CreatedAt          time.Time         `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`                     // datetime
+	UpdatedAt          time.Time         `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`                     // datetime
+	ProductAttrKey     *ProductAttrKey   `orm:"-"                            json:"attr_key"`
+	ProductAttrValue   *ProductAttrValue `orm:"-"                            json:"attr_value"`
+}
+
+func (self *ProductAttr) TableName() string {
+	return product_attrs_tablename
+}
+
+type ProductAttrKey struct {
+	Id        int64     `orm:"column(id);pk"                                  json:"id"`     // int(11)
+	Name      string    `orm:"column(name)"                                   json:"name"`   // varchar(20)
+	Status    int64     `orm:"column(status);null"                            json:"status"` // tinyint(1)
+	CreatedAt time.Time `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`      // datetime
+	UpdatedAt time.Time `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`      // datetime
+}
+
+func (self *ProductAttrKey) TableName() string {
+	return product_attr_keys_tablename
+}
+
+type ProductAttrValue struct {
+	Id               int64     `orm:"column(id);pk"                                  json:"id,omitempty"`        // int(11)
+	ProductAttrKeyId int64     `orm:"column(product_attr_key_id)"                    json:"product_attr_key_id"` // int(11)
+	Name             string    `orm:"column(name)"                                   json:"name"`                // varchar(64)
+	Pic              string    `orm:"column(pic)"                                    json:"pic"`                 // varchar(255)
+	Color            string    `orm:"column(color)"                                  json:"color"`               // varchar(64)
+	CreatedBy        int64     `orm:"column(created_by);null"                        json:"created_by"`          // int(11)
+	Status           int64     `orm:"column(status);null"                            json:"status"`              // tinyint(1)
+	CreatedAt        time.Time `orm:"column(created_at);auto_now_add;type(datetime)" json:"-"`                   // datetime
+	UpdatedAt        time.Time `orm:"column(updated_at);auto_now;type(datetime)"     json:"-"`                   // datetime
+}
+
+func (self *ProductAttrValue) TableName() string {
+	return product_attr_configs_tablename
+}
+
+// 根据product_attr_configs表Id查找记录
+func GetProductAttrValue(id int64) (v *ProductAttrValue) {
+	v = &ProductAttrValue{}
+	if err := orm.NewOrm().QueryTable(v).Filter("id", id).Limit(1).
+		One(v); err != nil {
+		beego.BeeLogger.Error("get product attr value by record_id=%s err=%s", id, err)
+		return nil
+	}
+	return v
+}
+
+// 根据product_attr_keys表Id查找记录
+func GetProductAttrKey(id int64) (k *ProductAttrKey) {
+	k = &ProductAttrKey{}
+	if err := orm.NewOrm().QueryTable(k).Filter("id", id).Limit(1).
+		One(k); err != nil {
+		beego.BeeLogger.Error("get product attr key by record_id=%s err=%s", id, err)
+		return nil
+	}
+	return k
+}
+
+// 根据product_attrs表Id查找记录
+func GetProductAttr(id int64) (pa *ProductAttr) {
+	pa = &ProductAttr{}
+	if err := orm.NewOrm().QueryTable(pa).Filter("id", id).Filter("status", 1).Limit(1).
+		One(pa); err != nil {
+		beego.BeeLogger.Error("get product attr by record_id=%s err=%s", id, err)
+		return nil
+	}
+	return pa
+}
+
+// 根据商品Id和keyId找出商品对应某个属性Key的所有属性记录
+func GetProductAttrsByKeyId(pId, kId int64) (items []*ProductAttr) {
+	o := orm.NewOrm()
+	item := new(ProductAttr)
+	_, err := o.QueryTable(item).Filter("product_attr_key_id", kId).
+		Filter("product_id", pId).Filter("status", 1).
+		All(&items)
+	if err != nil {
+		beego.BeeLogger.Error("GetProductAttrs(%d) err=%s", pId, err)
+	}
+	return items
+}
+
+func GetProductGroupAttrs(pId int64) (items []*ProductAttr) {
+	var j ProductAttr
+	o := orm.NewOrm()
+	var sql string
+	sql = fmt.Sprintf("SELECT * FROM `%s` WHERE product_id=? and status=1 GROUP BY product_attr_key_id", j.TableName())
+	_, err := o.Raw(sql, pId).QueryRows(&items)
+	if err != nil {
+		beego.BeeLogger.Error("GetProductGroupAttrs pId[%d], err=[%s] ", pId, err)
+		return nil
+	}
+	return items
+}
+
+func GetAttrCustomPic(vId int64, vPic string) string {
+	if vPic == "" {
+		return fmt.Sprintf("%s/v5/images/logo_32.jpg",
+			beego.AppConfig.String("RailsHost"))
+	} else {
+		return fmt.Sprintf("%s/product_attr_custom_pic/%d/%s",
+			beego.AppConfig.String("AliOssImgHost"),
+			vId,
+			vPic)
+	}
+
+}