- continue refactoring...
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
package model
|
||||
|
||||
type Jxstorefeature struct {
|
||||
Id int `orm:"column(storeid);pk"`
|
||||
Autopickup int8 `orm:"column(autopickup);null"`
|
||||
JdDeliveryType int8 `orm:"column(jd_delivery_type);default(0)"` // 京东店的配送方式
|
||||
ElmDeliveryType int8 `orm:"column(elm_delivery_type);default(0)"` // 饿了么店的配送方式
|
||||
JdCompetition int8 `orm:"default(1)"` // 京东门店是否支持3方配送
|
||||
ElmCompetition int8 `orm:"default(0)"` // 饿了么门店是否支持3方配送
|
||||
SupportMtps int8 `orm:"default(1)"` // 是否支持美团配送
|
||||
SupportDada int8 `orm:"default(0)"` // 是否支持达达
|
||||
SupportFengNiao int8 `orm:"default(0)"` // 是否支持蜂鸟
|
||||
|
||||
// Transmtzs int8 `orm:"column(transmtzs);null"` // 不用了
|
||||
// Deliverycompetition int8 `orm:"column(deliverycompetition);null"` // 不用了
|
||||
}
|
||||
|
||||
func (t *Jxstorefeature) TableName() string {
|
||||
return "jxstorefeature"
|
||||
}
|
||||
@@ -2,49 +2,23 @@ package model
|
||||
|
||||
import "time"
|
||||
|
||||
func Order2Status(order *GoodsOrder) (retVal *OrderStatus) {
|
||||
retVal = &OrderStatus{
|
||||
VendorOrderID: order.VendorOrderID,
|
||||
VendorID: order.VendorID,
|
||||
OrderType: OrderTypeOrder,
|
||||
RefVendorOrderID: order.VendorOrderID,
|
||||
RefVendorID: order.VendorID,
|
||||
Status: order.Status,
|
||||
VendorStatus: order.VendorStatus,
|
||||
StatusTime: order.StatusTime,
|
||||
LockStatus: order.LockStatus,
|
||||
}
|
||||
return retVal
|
||||
type ModelO struct {
|
||||
ID uint `gorm:"primary_key"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt *time.Time `sql:"index"`
|
||||
LastOperator string `gorm:"type:varchar(32)"` // 最后操作员
|
||||
}
|
||||
|
||||
func Waybill2Status(bill *Waybill) (retVal *OrderStatus) {
|
||||
retVal = &OrderStatus{
|
||||
VendorOrderID: bill.VendorWaybillID,
|
||||
VendorID: bill.WaybillVendorID,
|
||||
OrderType: OrderTypeWaybill,
|
||||
RefVendorOrderID: bill.VendorOrderID,
|
||||
RefVendorID: bill.OrderVendorID,
|
||||
Status: bill.Status,
|
||||
VendorStatus: bill.VendorStatus,
|
||||
StatusTime: bill.StatusTime,
|
||||
Remark: bill.Remark,
|
||||
}
|
||||
return retVal
|
||||
type ModelIDCU struct {
|
||||
ID uint `gorm:"primary_key"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
// 判断订单是否是临时的,不是真实收到了new order消息后的订单
|
||||
func IsOrderSolid(order *GoodsOrder) bool {
|
||||
return !(order.ConsigneeName == "" && order.ID == 0)
|
||||
}
|
||||
|
||||
func (o *GoodsOrder) GetStatusTime() time.Time {
|
||||
return o.StatusTime
|
||||
}
|
||||
|
||||
func (o *Waybill) GetStatusTime() time.Time {
|
||||
return o.StatusTime
|
||||
}
|
||||
|
||||
func (o *OrderStatus) GetStatusTime() time.Time {
|
||||
return o.StatusTime
|
||||
type ModelIDCUO struct {
|
||||
ID uint `gorm:"primary_key"`
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
LastOperator string `gorm:"type:varchar(32)"` // 最后操作员
|
||||
}
|
||||
|
||||
@@ -144,3 +144,50 @@ func (v *OrderStatus) TableIndex() [][]string {
|
||||
[]string{"VendorOrderID", "Status", "VendorStatus"},
|
||||
}
|
||||
}
|
||||
|
||||
func Order2Status(order *GoodsOrder) (retVal *OrderStatus) {
|
||||
retVal = &OrderStatus{
|
||||
VendorOrderID: order.VendorOrderID,
|
||||
VendorID: order.VendorID,
|
||||
OrderType: OrderTypeOrder,
|
||||
RefVendorOrderID: order.VendorOrderID,
|
||||
RefVendorID: order.VendorID,
|
||||
Status: order.Status,
|
||||
VendorStatus: order.VendorStatus,
|
||||
StatusTime: order.StatusTime,
|
||||
LockStatus: order.LockStatus,
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func Waybill2Status(bill *Waybill) (retVal *OrderStatus) {
|
||||
retVal = &OrderStatus{
|
||||
VendorOrderID: bill.VendorWaybillID,
|
||||
VendorID: bill.WaybillVendorID,
|
||||
OrderType: OrderTypeWaybill,
|
||||
RefVendorOrderID: bill.VendorOrderID,
|
||||
RefVendorID: bill.OrderVendorID,
|
||||
Status: bill.Status,
|
||||
VendorStatus: bill.VendorStatus,
|
||||
StatusTime: bill.StatusTime,
|
||||
Remark: bill.Remark,
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
// 判断订单是否是临时的,不是真实收到了new order消息后的订单
|
||||
func IsOrderSolid(order *GoodsOrder) bool {
|
||||
return !(order.ConsigneeName == "" && order.ID == 0)
|
||||
}
|
||||
|
||||
func (o *GoodsOrder) GetStatusTime() time.Time {
|
||||
return o.StatusTime
|
||||
}
|
||||
|
||||
func (o *Waybill) GetStatusTime() time.Time {
|
||||
return o.StatusTime
|
||||
}
|
||||
|
||||
func (o *OrderStatus) GetStatusTime() time.Time {
|
||||
return o.StatusTime
|
||||
}
|
||||
|
||||
24
business/model/place.go
Normal file
24
business/model/place.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// https://github.com/videni/pcr
|
||||
const (
|
||||
CityLevelProvince = 1
|
||||
CityLevelCity = 2
|
||||
CityLevelDistrict = 3
|
||||
)
|
||||
|
||||
type Place struct {
|
||||
ID uint
|
||||
Code int `gorm:"unique_index"` // 国家标准代码
|
||||
Name string `gorm:"type:varchar(16);index"` // 如果是直辖市,省的概念不加“市”来区别
|
||||
ParentCode int // 上级代码
|
||||
PostCode string `gorm:"type:varchar(8);index"`
|
||||
Level int8 // 城市级别,参见相关常量定义
|
||||
TelCode string `gorm:"type:varchar(8);index"`
|
||||
JdCode int `gorm:"index"` // 对应的京东代码
|
||||
Enabled int8 // 是否启用
|
||||
MtpsPrice int // 分为单位
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
114
business/model/product.go
Normal file
114
business/model/product.go
Normal file
@@ -0,0 +1,114 @@
|
||||
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 SkuCategory struct {
|
||||
ModelIDCUO
|
||||
Name string `gorm:"type:varchar(255);unique_index"`
|
||||
ParentID int
|
||||
Level int8
|
||||
Type int8 // 类别类型
|
||||
Seq int
|
||||
|
||||
JdID string `gorm:"type:varchar(48)"`
|
||||
ElmID string `gorm:"type:varchar(48)"`
|
||||
MtID string `gorm:"type:varchar(48)"`
|
||||
DidiID string `gorm:"type:varchar(48)"`
|
||||
}
|
||||
|
||||
type StoreSkuCategoryMap struct {
|
||||
ModelIDCUO
|
||||
StoreID int
|
||||
SkuCategoryID int
|
||||
|
||||
ElmID string `gorm:"type:varchar(48)"`
|
||||
}
|
||||
|
||||
type SkuName struct {
|
||||
ModelIDCUO
|
||||
Prefix string `gorm:"type:varchar(255)"`
|
||||
Name string `gorm:"type:varchar(255)"`
|
||||
Comment string `gorm:"type:varchar(255)"`
|
||||
|
||||
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 string `gorm:"type:varchar(48)"`
|
||||
}
|
||||
|
||||
type SkuNamePlaceBind struct {
|
||||
ModelIDCUO
|
||||
SkuNameID int `gorm:"unique_index:unique_sku_name_id_sku_place_id"`
|
||||
PlaceID int `gorm:"unique_index:unique_sku_name_id_sku_place_id"`
|
||||
}
|
||||
|
||||
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 string `gorm:"type:varchar(48)"`
|
||||
}
|
||||
59
business/model/store.go
Normal file
59
business/model/store.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package model
|
||||
|
||||
const (
|
||||
StoreStatusDisabled = -1
|
||||
StoreStatusClosed = 0
|
||||
StoreStatusOpened = 1
|
||||
)
|
||||
|
||||
const (
|
||||
MainSubStoreName = "本店"
|
||||
MainSubStoreAddress = "本店"
|
||||
)
|
||||
|
||||
type Store struct {
|
||||
ModelIDCUO
|
||||
Name string `gorm:"type:varchar(255);unique_index"`
|
||||
CityCode int
|
||||
DistrictCode int
|
||||
Address string `gorm:"type:varchar(255)"`
|
||||
OpenTime1 int // 930就表示9点半,用两个的原因是为了支持中午休息,1与2的时间段不能交叉,为0表示没有
|
||||
CloseTime1 int // 格式同上
|
||||
OpenTime2 int // 格式同上
|
||||
CloseTime2 int // 格式同上
|
||||
Lng int // 乘了10的6次方
|
||||
Lat int // 乘了10的6次方
|
||||
Status int
|
||||
}
|
||||
|
||||
type StoreSub struct {
|
||||
ModelIDCUO
|
||||
StoreID int `gorm:"unique_index:unique_index1"`
|
||||
Index int `gorm:"unique_index:unique_index1"` // 子店序号,为0表示主店
|
||||
Name string `gorm:"type:varchar(255)"`
|
||||
Address string `gorm:"type:varchar(255)"`
|
||||
Status int
|
||||
Mobile1 string `gorm:"type:varchar(32)"`
|
||||
Mobile2 string `gorm:"type:varchar(32)"`
|
||||
Mobile3 string `gorm:"type:varchar(32)"`
|
||||
}
|
||||
|
||||
type StoreMap struct {
|
||||
ModelIDCUO
|
||||
StoreID int `gorm:"unique_index:storemap1"`
|
||||
VendorID int `gorm:"unique_index:storemap1"`
|
||||
VendorStoreID string `gorm:"type:varchar(48);unique_index"`
|
||||
Status int
|
||||
|
||||
AutoPickup int8 // 是否自动拣货
|
||||
DeliveryType int8 // 配送类型
|
||||
DeliveryCompetition int8 // 是否支持配送竞争
|
||||
}
|
||||
|
||||
type StoreCourierMap struct {
|
||||
ModelIDCUO
|
||||
StoreID int `gorm:"unique_index:storemap1"`
|
||||
VendorID int `gorm:"unique_index:storemap1"`
|
||||
VendorStoreID string `gorm:"type:varchar(48);unique_index"`
|
||||
Status int
|
||||
}
|
||||
Reference in New Issue
Block a user