- basic cms structure.

This commit is contained in:
gazebo
2018-09-02 19:11:54 +08:00
parent d46bc8981a
commit 945431d566
19 changed files with 576 additions and 211 deletions

137
business/model/sku.go Normal file
View File

@@ -0,0 +1,137 @@
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 {
ModelIDCUO
VendorCategoryID string `gorm:"type:varchar(48);unique_index:unique_index_id_vendor_id" json:"vendorCategoryID"`
VendorID int `gorm:"unique_index:unique_index_id_vendor_id" json:"vendorID"`
Name string `gorm:"type:varchar(255);index" json:"name"`
IsLeaf int8 `json:"isLeaf"`
Level int `json:"level"`
ParentID string `gorm:"type:varchar(255);index" json:"parentID"` // 父ID引用的是VendorCategoryID而不是ID
}
// 基础数据,除了商家商品类别外,基本都以京东到家为准
type SkuCategory struct {
ModelIDCUO
Name string `gorm:"type:varchar(255);unique_index"`
ParentID int
Level int8
Type int8 // 类别类型
Seq int
JdID int64 `gorm:"index"` // 这个是指商家自己的商品类别在京东平台上的ID
JdCategoryID int // 这个是指对应的京东商品类别
// ElmID int64 `gorm:"index"` // 饿了么是单店模式,不需要
ElmCategoryID int64 // 这个是指对应的饿了么商品类别
// EbaiID int64 `gorm:"index"` // 饿百是单店模式,不需要
EbaiCategoryID int64 // 这个是指对应的饿百商品类别
// MtID string `gorm:"type:varchar(48);index"`
// DidiID string `gorm:"type:varchar(48);index"`
}
type SkuName struct {
ModelIDCUO
Prefix string `gorm:"type:varchar(255)"`
Name string `gorm:"type:varchar(255)"`
Comment string `gorm:"type:varchar(255)"`
BrandID int `gorm:"default:0"` // 此属性暂时没有使用
CategoryID int // 标准类别
Status int
IsGlobal int8 `gorm:"default:1"` // 是否是全部全国可见如果否的话可见性由SkuPlace决定
Unit string `gorm:"type:varchar(8)"`
Price int // 单位为分标准价不为份的就为实际标准价为份的为每市斤价实际还要乘质量。todo 为份的确定必须有质量
Img string `gorm:"type:varchar(255)"`
ElmImgHashCode string `gorm:"type:varchar(64)"`
}
type Sku struct {
ModelIDCUO
CategoryID int // 特殊类别,一般用于秒杀,特价之类的特殊类别
NameID int `gorm:"index:unique_index_name_Id_quality"` // todo 这个索引应该要求唯一
SpecQuality float32 `gorm:"index:unique_index_name_Id_quality"`
SpecUnit string `gorm:"type:varchar(8)"` // 质量或容量
Weight int // 重量/质量单位为克当相应的SkuName的SpecUnit为g或kg时必须等于SpecQuality
JdID int64
}
type SkuNamePlaceBind struct {
ModelIDCUO
SkuNameID int `gorm:"unique_index:unique_sku_name_id_sku_place_id"`
PlaceCode int `gorm:"unique_index:unique_sku_name_id_sku_place_id"`
}
// 以下为门店相关数据
type StoreSkuCategoryMap struct {
ModelIDCUO
StoreID int
SkuCategoryID int
ElmID int64 `gorm:"index"`
EbaiID int64 `gorm:"index"`
}
type StoreSkuBind struct {
ModelIDCUO
StoreID int `gorm:"unique_index:unique_store_id_sku_id"`
SkuID int `gorm:"unique_index:unique_store_id_sku_id"`
SubStoreID int
Price int // 单位为分不用int64的原因是这里不需要累加
Status int
ElmID int64 `gorm:"index"`
EbaiID int64 `gorm:"index"`
}