From 62ea34eb70da459cec6ef25420b1e8c307225186 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 25 Oct 2018 08:42:49 +0800 Subject: [PATCH] - fixed bug in updateStoreSkusWithoutSync --- business/jxstore/cms/store_sku.go | 6 +++--- business/model/model.go | 4 ++-- business/partner/partner.go | 4 ++++ business/partner/purchase/jd/store_sku.go | 7 ++++++- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 46ce53194..64df8cad7 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -358,9 +358,9 @@ func updateStoreSkusWithoutSync(ctx *jxcontext.Context, storeID int, skuBindInfo } } } - if skuBind != nil && num == 1 { - needSyncIDMap[skuBind.SkuID] = 1 - } + } + if skuBind != nil && num == 1 { + needSyncIDMap[skuBind.SkuID] = 1 } } } else { diff --git a/business/model/model.go b/business/model/model.go index 903c41a95..8eb7d6731 100644 --- a/business/model/model.go +++ b/business/model/model.go @@ -55,8 +55,8 @@ const ( SyncFlagDeletedMask = 4 SyncFlagChangedMask = SyncFlagModifiedMask | SyncFlagNewMask | SyncFlagDeletedMask - SyncFlagSaleMask = 5 - SyncFlagPriceMask = 6 + SyncFlagSaleMask = 8 + SyncFlagPriceMask = 16 ) // const ( diff --git a/business/partner/partner.go b/business/partner/partner.go index be8ddf8da..9298340ec 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -53,6 +53,10 @@ type IOrderManager interface { LoadWaybill(vendorWaybillID string, waybillVendorID int) (bill *model.Waybill, err error) } +// purchase handler中 +// 所有Sync,Refresh开头的函数都必须自己清理sync_status标记 +// 所有非以Sync,Refresh开头的函数不用自己清理sync_status标记(VendorSync统一处理) + type IPurchasePlatformHandler interface { GetStatusFromVendorStatus(vendorStatus string) int GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error) diff --git a/business/partner/purchase/jd/store_sku.go b/business/partner/purchase/jd/store_sku.go index 00e7a01f1..e2ea28e69 100644 --- a/business/partner/purchase/jd/store_sku.go +++ b/business/partner/purchase/jd/store_sku.go @@ -25,6 +25,9 @@ type tStoreSkuBindExt struct { // 京东到家,以有库存表示关注(认领) func (p *PurchaseHandler) SyncStoresSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, db *dao.DaoDB, storeIDs []int, skuIDs []int, isAsync bool) (hint string, err error) { globals.SugarLogger.Debugf("jd SyncStoresSkus, storeIDs:%v, skuIDs:%v", storeIDs, skuIDs) + if len(skuIDs) == 0 { + return "", nil + } parallelCount := 1 if len(skuIDs) < MaxSkuBatchSize { @@ -57,7 +60,7 @@ func (p *PurchaseHandler) SyncStoresSkus(ctx *jxcontext.Context, parentTask task } if err = dao.GetRows(db, &storeSkus, sql, append(sqlParams, sqlWhereParams...)...); err == nil { outStationNo := utils.Int2Str(storeID) - task := tasksch.RunParallelTask("SyncStoresSkus inner", tasksch.NewParallelConfig().SetBatchSize(MaxSkuBatchSize), ctx.GetUserName(), func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) { + task := tasksch.NewParallelTask("SyncStoresSkus inner", tasksch.NewParallelConfig().SetBatchSize(MaxSkuBatchSize), ctx.GetUserName(), func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) { var skuPriceInfoList []*jdapi.SkuPriceInfo var skuVendibilityList []*jdapi.StockVendibility var skuStockList []*jdapi.SkuStock @@ -95,6 +98,7 @@ func (p *PurchaseHandler) SyncStoresSkus(ctx *jxcontext.Context, parentTask task } if globals.EnableStoreWrite { // todo 以下可以优化为并行操作 + // globals.SugarLogger.Debug(utils.Format4Output(skuVendibilityList, false), utils.Format4Output(skuPriceInfoList, false), utils.Format4Output(skuStockList, false)) if len(skuVendibilityList) > 0 { _, err = api.JdAPI.BatchUpdateVendibility(outStationNo, "", skuVendibilityList, ctx.GetUserName()) } @@ -107,6 +111,7 @@ func (p *PurchaseHandler) SyncStoresSkus(ctx *jxcontext.Context, parentTask task } return nil, err }, storeSkus) + t.AddChild(task).Run() if _, err = task.GetResult(0); err == nil { sql := ` UPDATE store_sku_bind t1