From fc7a3ee54ecbc29838b999460327a690c979bc9a Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 24 Oct 2019 18:03:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=B8=8D=E5=AE=8C=E5=85=A8=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=95=86=E5=93=81=EF=BC=8C=E6=94=B9=E4=B8=BA=E5=B7=AE=E5=88=86?= =?UTF-8?q?=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 51 ++++++++++++-------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index da3aa113e..1e8a31b88 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -163,7 +163,8 @@ func FullSyncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo switch step { case 0: if singleStoreHandler != nil { - _, err = ClearRemoteStoreStuffAndSetNew(ctx, task, vendorID, storeID, vendorStoreID, false, isContinueWhenError) + // _, err = ClearRemoteStoreStuffAndSetNew(ctx, task, vendorID, storeID, vendorStoreID, false, isContinueWhenError) + _, err = amendAndPruneStoreStuff(ctx, parentTask, vendorID, storeID, vendorStoreID, false, isContinueWhenError, AmendPruneAll, true) } else { _, err = dao.SetStoreSkuSyncStatus(dao.GetDB(), vendorID, []int{storeID}, nil, model.SyncFlagStoreSkuOnlyMask) } @@ -599,7 +600,7 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v var sku2Delete []*partner.StoreSkuInfo var cat2Delete []*partner.BareCategoryInfo - task := tasksch.NewParallelTask(fmt.Sprintf("修补平台:%s上的门店商品与分类", model.VendorChineseNames[vendorID]), + task := tasksch.NewParallelTask(fmt.Sprintf("修补门店:%d,平台:%s上的商品与商家分类", storeID, model.VendorChineseNames[vendorID]), tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) @@ -721,10 +722,11 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v return nil, err }, []int{0, 1, 2, 3}) tasksch.HandleTask(task, parentTask, true).Run() - if isAsync { - hint = task.GetID() - } else { + if !isAsync { _, err = task.GetResult(0) + hint = "1" + } else { + hint = task.ID } return hint, err } @@ -743,35 +745,30 @@ func ClearRemoteStoreStuffAndSetNew(ctx *jxcontext.Context, parentTask tasksch.I } db := dao.GetDB() - var errDeleteSku error - rootTask := tasksch.NewSeqTask(fmt.Sprintf("ClearRemoteStoreStuffAndSetNew:%s", model.VendorChineseNames[vendorID]), ctx, - func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + task := tasksch.NewParallelTask(fmt.Sprintf("删除门店:%d,平台:%s上的商品与商家分类", storeID, model.VendorChineseNames[vendorID]), + tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + step := batchItemList[0].(int) switch step { case 0: - err = handler.DeleteStoreAllSkus(ctx, rootTask, storeID, vendorStoreID, isContinueWhenError) - errDeleteSku = err - // 强制忽略删除SKU错误 - if isContinueWhenError { - err = nil - } - if err == nil { - _, err = dao.SetStoreSkuSyncStatus(db, vendorID, []int{storeID}, nil, model.SyncFlagNewMask) - } + err = handler.DeleteStoreAllSkus(ctx, task, storeID, vendorStoreID, isContinueWhenError) case 1: - if err = handler.DeleteStoreAllCategories(ctx, rootTask, storeID, vendorStoreID, isContinueWhenError); err == nil { - _, err = dao.SetStoreCategorySyncStatus(db, vendorID, []int{storeID}, nil, model.SyncFlagNewMask) - } + _, err = dao.SetStoreSkuSyncStatus(db, vendorID, []int{storeID}, nil, model.SyncFlagNewMask) + case 2: + err = handler.DeleteStoreAllCategories(ctx, task, storeID, vendorStoreID, isContinueWhenError) + case 3: + _, err = dao.SetStoreCategorySyncStatus(db, vendorID, []int{storeID}, nil, model.SyncFlagNewMask) } return nil, err - }, 2) - tasksch.AddChild(parentTask, rootTask).Run() + }, []int{0, 1, 2, 3}) + tasksch.HandleTask(task, parentTask, true).Run() if !isAsync { - _, err = rootTask.GetResult(0) + _, err = task.GetResult(0) + hint = "1" + } else { + hint = task.ID } - if err == nil { - err = errDeleteSku - } - return rootTask.ID, err + return hint, err } func GetSensitiveWord(singleStoreHandler partner.ISingleStoreStoreSkuHandler, str string) string {