153 lines
4.7 KiB
Go
153 lines
4.7 KiB
Go
package model
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
const (
|
||
FieldID = "ID"
|
||
FieldParentID = "ParentID"
|
||
FieldDeletedAt = "DeletedAt"
|
||
FieldCreatedAt = "CreatedAt"
|
||
FieldUpdatedAt = "UpdatedAt"
|
||
FieldLastOperator = "LastOperator"
|
||
FieldStatus = "Status"
|
||
FieldSyncStatus = "SyncStatus"
|
||
FieldJdSyncStatus = "JdSyncStatus"
|
||
// FieldElmSyncStatus = "ElmSyncStatus"
|
||
FieldEbaiSyncStatus = "EbaiSyncStatus"
|
||
FieldMtwmSyncStatus = "MtwmSyncStatus"
|
||
// FieldWscSyncStatus = "WscSyncStatus"
|
||
FieldYbSyncStatus = "YbSyncStatus"
|
||
FieldJdsSyncStatus = "JdsSyncStatus"
|
||
|
||
FieldVendorID = "VendorID"
|
||
FieldStoreID = "StoreID"
|
||
FieldVendorStoreID = "VendorStoreID"
|
||
FieldNameID = "NameID"
|
||
FieldPlaceCode = "PlaceCode"
|
||
|
||
FieldCategoryID = "CategoryID"
|
||
|
||
// FieldJdID = "JdID"
|
||
// FieldElmID = "ElmID"
|
||
FieldEbaiID = "EbaiID"
|
||
FieldMtwmID = "MtwmID"
|
||
// FieldWscID = "WscID"
|
||
// FieldWscID2 = "WscID2"
|
||
|
||
FieldSkuID = "SkuID"
|
||
FieldLevel = "Level"
|
||
|
||
FieldEnabled = "Enabled"
|
||
FieldSpecQuality = "SpecQuality"
|
||
FieldSpecUnit = "SpecUnit"
|
||
FieldName = "Name"
|
||
FieldRemark = "Remark"
|
||
|
||
FieldVendorOrderID = "VendorOrderID"
|
||
FieldVendorOrderID2 = "VendorOrderID2"
|
||
|
||
FieldActID = "ActID"
|
||
FieldVendorActID = "VendorActID"
|
||
|
||
FieldSkuSeq = "Seq"
|
||
FieldVendorStatus = "VendorStatus"
|
||
)
|
||
|
||
type ModelIDCUL struct {
|
||
ID int64 `orm:"column(id)" json:"id"`
|
||
CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"`
|
||
UpdatedAt time.Time `orm:"auto_now;type(datetime)" json:"updatedAt"`
|
||
LastOperator string `orm:"size(32)" json:"lastOperator"` // 最后操作员
|
||
}
|
||
|
||
type ModelIDCULD struct {
|
||
ID int `orm:"column(id)" json:"id"`
|
||
CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"`
|
||
UpdatedAt time.Time `orm:"auto_now;type(datetime)" json:"updatedAt"`
|
||
LastOperator string `orm:"size(32)" json:"lastOperator"` // 最后操作员
|
||
DeletedAt time.Time `orm:"type(datetime);null" json:"deletedAt"`
|
||
}
|
||
|
||
// 同步标识掩码
|
||
const (
|
||
// general
|
||
SyncFlagModifiedMask = 1
|
||
SyncFlagNewMask = 2
|
||
SyncFlagDeletedMask = 4
|
||
|
||
// store only
|
||
SyncFlagStoreName = 8
|
||
SyncFlagStoreAddress = 16
|
||
SyncFlagStoreStatus = 32
|
||
|
||
// sku only
|
||
SyncFlagSpecMask = 64 // 规格修改,原值32
|
||
|
||
// store sku only
|
||
SyncFlagSaleMask = 8 // 改了门店商品可售状态必须设置此标志
|
||
SyncFlagPriceMask = 16 // 改了门店商品价格必须设置此标志
|
||
SyncFlagStockMask = 32 // 修改库存同步标识,当前只有多门店平台才会用到
|
||
SyncFlagSeqMask = 64 // 门店商家分类下的排序顺序
|
||
|
||
// combine
|
||
SyncFlagStoreSkuOnlyMask = SyncFlagSaleMask | SyncFlagPriceMask
|
||
SyncFlagStoreSkuModifiedMask = SyncFlagStoreSkuOnlyMask | SyncFlagModifiedMask
|
||
SyncFlagChangedMask = SyncFlagSpecMask | SyncFlagNewMask | SyncFlagDeletedMask | SyncFlagStoreSkuModifiedMask
|
||
)
|
||
|
||
func IsSyncStatusNew(syncStatus int8) bool {
|
||
return (syncStatus & SyncFlagNewMask) != 0
|
||
}
|
||
|
||
func IsSyncStatusDelete(syncStatus int8) bool {
|
||
return (syncStatus & SyncFlagDeletedMask) != 0
|
||
}
|
||
|
||
func IsSyncStatusUpdate(syncStatus int8) bool {
|
||
return (syncStatus & SyncFlagModifiedMask) != 0
|
||
}
|
||
|
||
func IsSyncStatusSale(syncStatus int8) bool {
|
||
return (syncStatus & SyncFlagSaleMask) != 0
|
||
}
|
||
|
||
func IsSyncStatusPrice(syncStatus int8) bool {
|
||
return (syncStatus & SyncFlagPriceMask) != 0
|
||
}
|
||
|
||
func IsSyncStatusSeq(syncStatus int8) bool {
|
||
return (syncStatus & SyncFlagSeqMask) != 0
|
||
}
|
||
|
||
func IsSyncStatusNeedCreate(syncStatus int8) bool {
|
||
return IsSyncStatusNew(syncStatus) && !IsSyncStatusDelete(syncStatus)
|
||
}
|
||
|
||
func IsSyncStatusNeedDelete(syncStatus int8) bool {
|
||
return !IsSyncStatusNew(syncStatus) && IsSyncStatusDelete(syncStatus)
|
||
}
|
||
|
||
func IsSyncStatusNeedUpdate(syncStatus int8) bool {
|
||
return !IsSyncStatusNew(syncStatus) && !IsSyncStatusDelete(syncStatus) && IsSyncStatusUpdate(syncStatus)
|
||
}
|
||
|
||
// const (
|
||
// KeyJdFlag = "jdFlag"
|
||
// KeyJdSyncedAt = "jdSyncedAt"
|
||
// KeyElmFlag = "elmFlag"
|
||
// KeyElmSyncedAt = "elmSyncedAt"
|
||
// KeyEbaiFlag = "ebaiFlag"
|
||
// KeyEbaiSyncedAt = "ebaiSyncedAt"
|
||
// )
|
||
|
||
// type ModelSyncFlag struct {
|
||
// JdFlag int8 `orm:"column(jd_flag);default(2)" json:"jdFlag"` // 京东同步状态
|
||
// JdSyncedAt time.Time `orm:"column(jd_synced_at);null" json:"jdSyncedAt"` // 京东最新成功同步时间
|
||
// ElmFlag int8 `orm:"column(elm_flag);default(2)" json:"elmFlag"` // 饿了么同步状态
|
||
// ElmSyncedAt time.Time `orm:"column(elm_synced_at);null" json:"elmSyncedAt"` // 京东最新成功同步时间
|
||
// EbaiFlag int8 `orm:"column(ebai_flag);default(2)" json:"ebaiFlag"` // 饿百同步状态
|
||
// EbaiSyncedAt time.Time `orm:"column(ebai_synced_at);null" json:"ebaiSyncedAt"` // 京东最新成功同步时间
|
||
// }
|