UpdateSkuSyncStatusForExPrefix改为使用thing_map

This commit is contained in:
gazebo
2019-12-20 16:21:05 +08:00
parent dfd4a7a183
commit d5e3457173
2 changed files with 23 additions and 24 deletions

View File

@@ -169,9 +169,13 @@ func syncStoreSku() {
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int)
errList := errlist.New()
db := dao.GetDB()
switch step {
case 0:
_, err = cms.CurVendorSync.LoopMultiStoresVendors(jxcontext.AdminCtx, dao.GetDB(), "同步多门店平台商品库", false, true,
errList.AddErr(cms.DeleteSkuNameExPrefixOverdue(db))
errList.AddErr(cms.SetMultiStoreSkuSyncModifyStatus(db, partner.GetMultiStoreVendorIDs()))
_, err = cms.CurVendorSync.LoopMultiStoresVendors(jxcontext.AdminCtx, db, "同步多门店平台商品库", false, true,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
vendorInfo := batchItemList[0].(*cms.MultiStoreVendorInfo)
_, err = cms.FullSyncVendorStuff(jxcontext.AdminCtx, task, vendorInfo.VendorID, vendorInfo.OrgCode, false, true)
@@ -179,15 +183,17 @@ func syncStoreSku() {
})
errList.AddErr(err)
// cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, dao.GetDB(), partner.GetMultiStoreVendorIDs(), nil, false, nil, []int{27379}, syncFlag, true, true)
_, err = cms.CurVendorSync.FullSyncStoresSkus(jxcontext.AdminCtx, dao.GetDB(), partner.GetMultiStoreVendorIDs(), nil, false, []int{27379}, true, true)
// cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, db, partner.GetMultiStoreVendorIDs(), nil, false, nil, []int{27379}, syncFlag, true, true)
_, err = cms.CurVendorSync.FullSyncStoresSkus(jxcontext.AdminCtx, db, partner.GetMultiStoreVendorIDs(), nil, false, []int{27379}, true, true)
errList.AddErr(err)
case 1:
errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, partner.GetSingleStoreVendorIDs()))
_, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, partner.GetSingleStoreVendorIDs(), nil, false, true, cms.AmendPruneAll, false)
errList.AddErr(err)
SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID)
taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, dao.GetDB(), partner.GetSingleStoreVendorIDs(), nil, false, nil, nil, syncFlag, true, true)
taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, db, partner.GetSingleStoreVendorIDs(), nil, false, nil, nil, syncFlag, true, true)
errList.AddErr(err2)
SaveImportantTaskID(TaskNameSyncStoreSku, taskID)
}

View File

@@ -938,32 +938,25 @@ func UpdateStoreSkuBindSyncStatusForExPrefix(db *DaoDB, vendorIDs []int) (num in
func UpdateSkuSyncStatusForExPrefix(db *DaoDB, vendorIDs []int) (num int64, err error) {
sql := `
UPDATE sku b
JOIN sku_name c ON c.id = b.name_id AND c.deleted_at = ?
SET
UPDATE thing_map t1
JOIN sku t2 ON t2.id = t1.thing_id AND t2.deleted_at = ?
JOIN sku_name t3 ON t3.id = t2.name_id AND t3.deleted_at = ?
AND t3.ex_prefix <> '' AND (t3.ex_prefix_begin = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL '6' HOUR),'%Y-%m-%d 00:00:00')
OR t3.ex_prefix_end = DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00'))
SET
t1.sync_status = t1.sync_status | ?
WHERE t1.deleted_at = ? AND t1.thing_type = ? AND t1.sync_status & ? <> 0
`
fmtParams := []interface{}{}
sqlParams := []interface{}{
utils.DefaultTimeValue,
utils.DefaultTimeValue,
model.SyncFlagModifiedMask,
utils.DefaultTimeValue, model.ThingTypeSku, model.SyncFlagDeletedMask,
}
if len(vendorIDs) > 0 {
for _, v := range vendorIDs {
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[v])
sql += ` b.%s_sync_status = b.%s_sync_status | ?,`
fmtParams = append(fmtParams, fieldPrefix)
sqlParams = append(sqlParams, model.SyncFlagModifiedMask)
}
} else {
return 0, errors.New("取平台ID名有错误partner.GetPurchasePlatformVendorIDs()")
sql += " AND t1.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")"
sqlParams = append(sqlParams, vendorIDs)
}
sql = sql[0:strings.LastIndex(sql, ",")]
sql = fmt.Sprintf(sql, fmtParams...)
sql += ` WHERE b.deleted_at = ?
AND c.ex_prefix != ""
AND (c.ex_prefix_begin = DATE_FORMAT(DATE_ADD(NOW(),INTERVAL '6' HOUR),'%Y-%m-%d 00:00:00')
OR c.ex_prefix_end = DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00'))
`
sqlParams = append(sqlParams, utils.DefaultTimeValue)
return ExecuteSQL(db, sql, sqlParams...)
}