diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 6fa55f25e..8236638f0 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -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) } diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 142a91368..1dd2452ed 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -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...) }