- 添加IStoreSkuSorter接口,但当前无实际平台支持

This commit is contained in:
gazebo
2019-09-04 11:42:58 +08:00
parent 4be654fc3e
commit 0bdcdde11c
6 changed files with 120 additions and 18 deletions

View File

@@ -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)
}
}

View File

@@ -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)
}