SyncActStoreSku2StoreSkuAct对于HintActID的处理
This commit is contained in:
@@ -1166,24 +1166,27 @@ func SyncActStoreSku2StoreSkuAct(ctx *jxcontext.Context, db *dao.DaoDB, parentTa
|
||||
}
|
||||
}()
|
||||
|
||||
// 创建时,会直接覆盖,后续修改时,会判断是否是相同的act_id
|
||||
// MySql的SET语句,顺序是有关系的,如果当前SET语句中有判断,且依赖于前一条SET过的字段,是用的是SET后的值的
|
||||
sql := `
|
||||
UPDATE store_sku_act t1
|
||||
JOIN act_store_sku_map t2 ON t2.store_id = t1.store_id AND t2.sku_id = t1.sku_id AND t2.vendor_id = t1.vendor_id AND t2.act_id = ? AND t2.sync_status <> 0
|
||||
JOIN act_store_sku t3 ON t3.store_id = t1.store_id AND t3.sku_id = t1.sku_id AND t3.act_id = t2.act_id
|
||||
JOIN act_map t4 ON t4.act_id = t2.act_id AND t4.vendor_id = t2.vendor_id
|
||||
SET
|
||||
t1.sync_status = IF(t1.act_percentage = IF(t2.sync_status & ? = 0 AND t3.deleted_at = ?, t3.price_percentage, 0), 0, ?),
|
||||
t1.act_percentage = IF(t2.sync_status & ? = 0 AND t3.deleted_at = ?, t3.price_percentage, 0),
|
||||
t1.sync_status = ?,
|
||||
t1.updated_at = NOW(),
|
||||
t1.last_operator = ?,
|
||||
t1.hint_act_id = t2.act_id
|
||||
WHERE t1.vendor_id = ? AND t1.act_percentage <> IF(t2.sync_status & ? = 0 AND t3.deleted_at = ?, t3.price_percentage, 0)
|
||||
WHERE t1.vendor_id = ? AND (t4.sync_status & ? <> 0 OR t1.hint_act_id = t2.act_id)
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
act.ID,
|
||||
model.SyncFlagDeletedMask, utils.DefaultTimeValue, model.SyncFlagModifiedMask,
|
||||
model.SyncFlagDeletedMask, utils.DefaultTimeValue,
|
||||
model.SyncFlagModifiedMask,
|
||||
ctx.GetUserName(),
|
||||
act.VendorID, model.SyncFlagDeletedMask, utils.DefaultTimeValue,
|
||||
act.VendorID, model.SyncFlagNewMask,
|
||||
}
|
||||
_, err = dao.ExecuteSQL(dao.GetDB(), sql, sqlParams...)
|
||||
if err != nil {
|
||||
|
||||
@@ -1132,11 +1132,17 @@ func SyncStoreSkuBindAct(ctx *jxcontext.Context, parentTask tasksch.ITask, isCre
|
||||
}
|
||||
}
|
||||
|
||||
task := tasksch.NewParallelTask("处理门店商品绑定活动", nil, ctx,
|
||||
var taskName string
|
||||
if isCreate {
|
||||
taskName = "创建门店绑定活动"
|
||||
} else {
|
||||
taskName = "取消门店绑定活动"
|
||||
}
|
||||
task := tasksch.NewParallelTask(taskName, nil, ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
storeID := batchItemList[0].(int)
|
||||
vendorIDs := jxutils.IntMap2List(storeVendorMap[storeID])
|
||||
subTask := tasksch.NewParallelTask(fmt.Sprintf("处理门店商品绑定活动门店:%d", storeID), nil, ctx,
|
||||
subTask := tasksch.NewParallelTask(fmt.Sprintf("%s门店:%d", taskName, storeID), nil, ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
vendorID := batchItemList[0].(int)
|
||||
storeDetail, err := dao.GetStoreDetail(db, storeID, vendorID)
|
||||
|
||||
Reference in New Issue
Block a user