- 添加IStoreSkuSorter接口,但当前无实际平台支持
This commit is contained in:
@@ -176,6 +176,7 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int) (cats []*Sk
|
||||
}
|
||||
|
||||
// 以store_sku_bind为基础来做同步,正常情况下使用
|
||||
// !!! 此函数不要将store_sku_bind中的vendor_price取出来放到StoreSkuSyncInfo.VendorPrice中,因为之后会依赖这个VendorPrice进行重算
|
||||
// 单多门店模式厂商通用
|
||||
func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, isDirty bool) (skus []*StoreSkuSyncInfo, err error) {
|
||||
if vendorID < 0 {
|
||||
@@ -211,6 +212,11 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, isDirty bool)
|
||||
t5.%s_sync_status store_cat_sync_status, t5.%s_id vendor_cat_id,
|
||||
t5sku.%s_sync_status sku_store_cat_sync_status, t5sku.%s_id sku_vendor_cat_id`
|
||||
fmtParams = append(fmtParams, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix)
|
||||
} else {
|
||||
sql += `,
|
||||
t4.%s_id vendor_cat_id,
|
||||
t5sku.%s_id sku_vendor_cat_id`
|
||||
fmtParams = append(fmtParams, fieldPrefix, fieldPrefix)
|
||||
}
|
||||
sql += `
|
||||
FROM store_sku_bind t1
|
||||
@@ -236,6 +242,9 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, isDirty bool)
|
||||
LEFT JOIN store_sku_category_map t5 ON t4.id = t5.category_id AND t5.store_id = t1.store_id AND t5.deleted_at = ?
|
||||
LEFT JOIN store_sku_category_map t5sku ON t2.category_id = t5sku.category_id AND t5sku.store_id = t1.store_id AND t5sku.deleted_at = ?`
|
||||
sqlParams = append(sqlParams, utils.DefaultTimeValue, utils.DefaultTimeValue)
|
||||
} else {
|
||||
sql += `
|
||||
LEFT JOIN sku_category t5sku ON t5sku.id = t2.category_id`
|
||||
}
|
||||
sql += " WHERE 1 = 1"
|
||||
if storeID > 0 {
|
||||
@@ -532,4 +541,4 @@ func (s *StoreSkuSyncInfo) GetSeq() int {
|
||||
return s.Seq
|
||||
}
|
||||
return int(s.VendorPrice)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,24 +67,31 @@ type ModelIDCULD struct {
|
||||
DeletedAt time.Time `orm:"type(datetime);default('1970-01-01 00:00:00')" json:"deletedAt"`
|
||||
}
|
||||
|
||||
// flag按位表示,第一位表示修改,第二位表示新增,第三位表示删除
|
||||
// 同步标识掩码
|
||||
const (
|
||||
// general
|
||||
SyncFlagModifiedMask = 1
|
||||
SyncFlagNewMask = 2
|
||||
SyncFlagDeletedMask = 4
|
||||
|
||||
SyncFlagSaleMask = 8 // 改了门店商品可售状态必须设置此标志
|
||||
SyncFlagPriceMask = 16 // 改了门店商品价格必须设置此标志
|
||||
SyncFlagStockMask = 32 // 修改库存同步标识,当前只有多门店平台才会用到
|
||||
SyncFlagSpecMask = 64 // 原值32
|
||||
|
||||
SyncFlagStoreSkuOnlyMask = SyncFlagSaleMask | SyncFlagPriceMask
|
||||
SyncFlagStoreSkuModifiedMask = SyncFlagStoreSkuOnlyMask | SyncFlagModifiedMask
|
||||
SyncFlagChangedMask = SyncFlagSpecMask | SyncFlagNewMask | SyncFlagDeletedMask | SyncFlagStoreSkuModifiedMask
|
||||
|
||||
// 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 {
|
||||
@@ -107,6 +114,10 @@ func IsSyncStatusPrice(syncStatus int8) bool {
|
||||
return (syncStatus & SyncFlagPriceMask) != 0
|
||||
}
|
||||
|
||||
func IsSyncStatusSec(syncStatus int8) bool {
|
||||
return (syncStatus & SyncFlagSeqMask) != 0
|
||||
}
|
||||
|
||||
func IsSyncStatusNeedCreate(syncStatus int8) bool {
|
||||
return IsSyncStatusNew(syncStatus) && !IsSyncStatusDelete(syncStatus)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user