Files
jx-callback/business/model/model.go
2020-07-03 08:41:50 +08:00

153 lines
4.7 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
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"` // 京东最新成功同步时间
// }