Files
jx-callback/business/model/sku.go
gazebo 2350e182a5 - up.
2018-09-14 15:44:13 +08:00

215 lines
5.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package model
const (
SkuCategoryNormal = 0
SkuCategorySpecial = 1
)
const (
SpecUnitG = 0
SpecUnitKG = 1
SpecUnitL = 2
SpecUnitML = 3
)
const (
SkuStatusDeleted = -1
SkuStatusDontSale = 0
SkuStatusNormal = 1
)
var (
SpecUnitNames = []string{
"g",
"kg",
"L",
"ml",
}
)
var (
UnitNames = []string{
"份",
"袋",
"瓶",
"只",
"组",
"个",
"盒",
"把",
"半只",
"包",
"条",
"根",
"箱",
"听",
"套",
"罐",
"件",
"块",
"片",
"支",
"杯",
}
SkuNamePrefixNames = []string{
"新鲜",
"组合菜",
"冰鲜",
"优",
"精",
"熟食",
"鲜",
"净菜",
"净",
"冻",
"半熟",
"果切",
"熟",
"优质",
"生",
"干货",
"快捷菜",
"手工厨房",
"带壳",
"长条",
"鲜活宰杀",
"惠",
"鱼腥草",
"冰冻",
"思念",
"散装",
"优质精品",
"干",
"湿",
"生品",
"虾仁",
"鲜活现宰",
}
)
var (
CategoryTypeName map[int]string
SkuStatusName map[int]string
)
func init() {
CategoryTypeName = map[int]string{
SkuCategoryNormal: "普通类别",
SkuCategorySpecial: "特殊类别",
}
SkuStatusName = map[int]string{
SkuStatusDeleted: "删除",
SkuStatusDontSale: "下架",
SkuStatusNormal: "上架",
}
}
// 这个指的是厂商(比如京东到家,饿百)自已的商品分类,与商家自己的商品分类是两回事
type SkuVendorCategory struct {
ModelIDCUL
VendorCategoryID string `orm:"size(48);column(vendor_category_id)" json:"vendorCategoryID"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
Name string `orm:"size(255);index" json:"name"`
IsLeaf int8 `json:"isLeaf"`
Level int `json:"level"`
ParentID string `orm:"column(parent_id);size(255);index" json:"parentID"` // 父ID引用的是VendorCategoryID而不是ID
}
func (*SkuVendorCategory) TableUnique() [][]string {
return [][]string{
[]string{"VendorCategoryID", "VendorID"},
}
}
// 基础数据,除了商家商品类别外,基本都以京东到家为准
type SkuCategory struct {
ModelIDCULD
Name string `orm:"size(255)" json:"name"`
ParentID int `orm:"column(parent_id)" json:"parentID"`
Level int8 `json:"level"`
Type int8 `json:"type"` // 类别类型,即是普通类别还是特殊用于做活动的类别
Seq int `json:"seq"`
JdCategoryID int `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
ElmCategoryID int64 `orm:"column(elm_category_id)" json:"elmCategoryID"` // 这个是指对应的饿了么商品类别
EbaiCategoryID int64 `orm:"column(ebai_category_id)" json:"ebaiCategoryID"` // 这个是指对应的饿百商品类别
JdID int64 `orm:"column(jd_id)" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
}
func (*SkuCategory) TableUnique() [][]string {
return [][]string{
[]string{"Name", "DeletedAt"},
[]string{"JdID", "DeletedAt"},
}
}
type SkuName struct {
ModelIDCULD
Prefix string `orm:"size(255)" json:"prefix"`
Name string `orm:"size(255);index" json:"name"`
Comment string `orm:"size(255)" json:"comment"`
BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // 此属性暂时没有使用
CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别
IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部全国可见如果否的话可见性由SkuPlace决定
Unit string `orm:"size(8)" json:"unit"`
Price int `json:"price"` // 单位为分标准价不为份的就为实际标准价为份的为每市斤价实际还要乘质量。todo 为份的确定必须有质量
Img string `orm:"size(255)" json:"img"`
ElmImgHashCode string `orm:"size(64)" json:"-"`
}
// func (*SkuName) TableUnique() [][]string {
// return [][]string{
// []string{"Name", "Prefix", "Unit"},
// }
// }
type Sku struct {
ModelIDCULD
CategoryID int `orm:"column(category_id)" json:"categoryID"` // 特殊类别,一般用于秒杀,特价之类的特殊类别
NameID int `orm:"column(name_id)" json:"nameID"` // todo 这个索引应该要求唯一
SpecQuality float32 `json:"specQuality"`
SpecUnit string `orm:"size(8)" json:"specUnit"` // 质量或容量
Weight int `json:"weight"` // 重量/质量单位为克当相应的SkuName的SpecUnit为g或kg时必须等于SpecQuality
Status int `json:"status"`
JdID int64 `orm:"column(jd_id)" json:"jdID"`
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
}
func (*Sku) TableUnique() [][]string {
return [][]string{
[]string{"NameID", "SpecQuality", "SpecUnit", "DeletedAt"},
[]string{"JdID", "DeletedAt"},
}
}
type SkuNamePlaceBind struct {
ModelIDCUL
NameID int `orm:"column(name_id)"`
PlaceCode int
}
func (*SkuNamePlaceBind) TableUnique() [][]string {
return [][]string{
[]string{"NameID", "PlaceCode"},
}
}
type SkuNameExt struct {
SkuName
Skus []*Sku `orm:"-" json:"skus"`
SkusStr string `json:"-"`
Places []int `orm:"-" json:"places"`
PlacesStr string `json:"-"`
}