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 := `
|
sql := `
|
||||||
UPDATE store_sku_act t1
|
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_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_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
|
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.act_percentage = IF(t2.sync_status & ? = 0 AND t3.deleted_at = ?, t3.price_percentage, 0),
|
||||||
t1.sync_status = ?,
|
|
||||||
t1.updated_at = NOW(),
|
t1.updated_at = NOW(),
|
||||||
t1.last_operator = ?,
|
t1.last_operator = ?,
|
||||||
t1.hint_act_id = t2.act_id
|
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{}{
|
sqlParams := []interface{}{
|
||||||
act.ID,
|
act.ID,
|
||||||
|
model.SyncFlagDeletedMask, utils.DefaultTimeValue, model.SyncFlagModifiedMask,
|
||||||
model.SyncFlagDeletedMask, utils.DefaultTimeValue,
|
model.SyncFlagDeletedMask, utils.DefaultTimeValue,
|
||||||
model.SyncFlagModifiedMask,
|
|
||||||
ctx.GetUserName(),
|
ctx.GetUserName(),
|
||||||
act.VendorID, model.SyncFlagDeletedMask, utils.DefaultTimeValue,
|
act.VendorID, model.SyncFlagNewMask,
|
||||||
}
|
}
|
||||||
_, err = dao.ExecuteSQL(dao.GetDB(), sql, sqlParams...)
|
_, err = dao.ExecuteSQL(dao.GetDB(), sql, sqlParams...)
|
||||||
if err != nil {
|
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) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
storeID := batchItemList[0].(int)
|
storeID := batchItemList[0].(int)
|
||||||
vendorIDs := jxutils.IntMap2List(storeVendorMap[storeID])
|
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) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
vendorID := batchItemList[0].(int)
|
vendorID := batchItemList[0].(int)
|
||||||
storeDetail, err := dao.GetStoreDetail(db, storeID, vendorID)
|
storeDetail, err := dao.GetStoreDetail(db, storeID, vendorID)
|
||||||
|
|||||||
Reference in New Issue
Block a user