Files
jx-callback/business/model/sku.go
gazebo d8907cf010 - sku category man almost ok.
- mysql connect str add utf8mb4.
2018-09-09 20:43:48 +08:00

171 lines
4.4 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
)
var (
SpecUnitNames = []string{
"g",
"kg",
"L",
"ml",
}
)
var (
UnitNames = []string{
"份",
"袋",
"瓶",
"只",
"组",
"个",
"盒",
"把",
"半只",
"包",
"条",
"根",
"箱",
"听",
"套",
"罐",
"件",
"块",
"片",
"支",
"杯",
}
)
// 这个指的是厂商(比如京东到家,饿百)自已的商品分类,与商家自己的商品分类是两回事
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 {
ModelIDCUL
Name string `orm:"size(255);unique" json:"name"`
ParentID int `orm:"column(parent_id)" json:"parentID"`
Level int8 `json:"level"`
Type int8 `json:"type"` // 类别类型,即是普通类别还是特殊用于做活动的类别
Seq int `json:"seq"`
JdID int64 `orm:"column(jd_id);index" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
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"` // 这个是指对应的饿百商品类别
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
}
type SkuName struct {
ModelIDCUL
Prefix string `orm:"size(255)"`
Name string `orm:"size(255)"`
Comment string `orm:"size(255)"`
BrandID int `orm:"column(brand_id);default(0)"` // 此属性暂时没有使用
CategoryID int `orm:"column(category_id)"` // 标准类别
Status int
IsGlobal int8 `orm:"default(1)"` // 是否是全部全国可见如果否的话可见性由SkuPlace决定
Unit string `orm:"size(8)"`
Price int // 单位为分标准价不为份的就为实际标准价为份的为每市斤价实际还要乘质量。todo 为份的确定必须有质量
Img string `orm:"size(255)"`
ElmImgHashCode string `orm:"size(64)"`
}
// func (*SkuName) TableUnique() [][]string {
// return [][]string{
// []string{"Name", "Prefix", "Unit"},
// }
// }
type Sku struct {
ModelIDCUL
CategoryID int `orm:"column(category_id)"` // 特殊类别,一般用于秒杀,特价之类的特殊类别
NameID int `orm:"column(name_id)"` // todo 这个索引应该要求唯一
SpecQuality float32
SpecUnit string `orm:"size(8)"` // 质量或容量
Weight int // 重量/质量单位为克当相应的SkuName的SpecUnit为g或kg时必须等于SpecQuality
JdID int64 `orm:"column(jd_id)"`
}
func (*Sku) TableUnique() [][]string {
return [][]string{
[]string{"NameID", "SpecQuality", "SpecUnit"},
}
}
type SkuNamePlaceBind struct {
ModelIDCUL
SkuNameID int `orm:"column(sku_name_id)"`
PlaceCode int
}
func (*SkuNamePlaceBind) TableUnique() [][]string {
return [][]string{
[]string{"SkuNameID", "PlaceCode"},
}
}
// 以下为门店相关数据
type StoreSkuCategoryMap struct {
ModelIDCUL
StoreID int `orm:"column(store_id)"`
SkuCategoryID int `orm:"column(sku_category_id)"`
ElmID int64 `orm:"column(elm_id);index"`
EbaiID int64 `orm:"column(ebai_id);index"`
}
type StoreSkuBind struct {
ModelIDCUL
StoreID int `orm:"column(store_id)"`
SkuID int `orm:"column(sku_id)"`
SubStoreID int `orm:"column(sub_store_id)"`
Price int // 单位为分不用int64的原因是这里不需要累加
Status int
ElmID int64 `orm:"column(elm_id);index"`
EbaiID int64 `orm:"column(ebai_id);index"`
}
func (*StoreSkuBind) TableUnique() [][]string {
return [][]string{
[]string{"StoreID", "SkuID"},
}
}