diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go new file mode 100644 index 000000000..0aba89097 --- /dev/null +++ b/business/jxstore/cms/sync_store_sku.go @@ -0,0 +1,49 @@ +package cms + +import ( + "fmt" + "sort" + + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" + "git.rosy.net.cn/jx-callback/business/partner" +) + +func SyncStoreSkuNew(ctx *jxcontext.Context, vendorIDs, storeIDs, nameIDs, skuIDs []int) (hint string, err error) { + return hint, err +} + +func DeleteStoreAllCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, handler partner.ISingleStoreStoreSkuHandler, vendorStoreID string, isContinueWhenError bool) (err error) { + catList, err := handler.GetStoreAllCategories(ctx, vendorStoreID) + if err != nil { + return err + } + catListMap := make(map[int][]*partner.BareCategoryInfo) + for _, v := range catList { + catListMap[v.Level] = append(catListMap[v.Level], v) + } + var levelList []int + for k := range catListMap { + levelList = append(levelList, k) + } + sort.Sort(sort.Reverse(sort.IntSlice(levelList))) + task1 := tasksch.NewSeqTask(fmt.Sprintf("DeleteStoreAllCategories1, vendorStoreID:%s", vendorStoreID), ctx, + func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + task2 := tasksch.NewParallelTask(fmt.Sprintf("DeleteStoreAllCategories2, vendorStoreID:%s", vendorStoreID), tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + catInfo := batchItemList[0].(*partner.BareCategoryInfo) + err = handler.DeleteStoreCategory(ctx, vendorStoreID, catInfo.VendorCatID) + return nil, err + }, catListMap[levelList[step]]) + tasksch.HandleTask(task2, task, true).Run() + _, err = task2.GetResult(0) + return nil, err + }, len(levelList)) + tasksch.HandleTask(task1, parentTask, true).Run() + _, err = task1.GetResult(0) + return err +} + +func DeleteStoreAllSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, handler partner.ISingleStoreStoreSkuHandler, vendorStoreID string, isContinueWhenError bool) (err error) { + return err +}