- 继续重构新版同步逻辑
This commit is contained in:
@@ -4,8 +4,6 @@ import (
|
||||
"fmt"
|
||||
"sort"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
|
||||
"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"
|
||||
@@ -21,29 +19,32 @@ func DeleteStoreAllSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, handle
|
||||
return err
|
||||
}
|
||||
batchSize := handler.GetStoreSkusBatchSize(partner.FuncDeleteStoreSkus)
|
||||
skuNameListList := jxutils.SplitSlice(skuNameList, batchSize)
|
||||
task := tasksch.NewParallelTask(fmt.Sprintf("DeleteStoreAllSkus, vendorStoreID:%s", vendorStoreID),
|
||||
tasksch.NewParallelConfig().SetBatchSize(batchSize).SetIsContinueWhenError(isContinueWhenError), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
var skuList []*partner.BareStoreSkuInfo
|
||||
for _, v := range batchItemList {
|
||||
skuList = append(skuList, v.(*partner.BareStoreSkuInfo))
|
||||
skuName := v.(*partner.SkuNameInfo)
|
||||
skuList = append(skuList, &partner.BareStoreSkuInfo{
|
||||
VendorSkuID: skuName.SkuList[0].VendorSkuID,
|
||||
})
|
||||
}
|
||||
err = handler.DeleteStoreSkus(ctx, storeID, vendorStoreID, skuList)
|
||||
return nil, err
|
||||
}, skuNameListList)
|
||||
}, skuNameList)
|
||||
tasksch.HandleTask(task, parentTask, true).Run()
|
||||
_, err = task.GetResult(0)
|
||||
return err
|
||||
}
|
||||
|
||||
func DeleteStoreAllCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, handler partner.ISingleStoreStoreSkuHandler, storeID int, vendorStoreID string, isContinueWhenError bool) (err error) {
|
||||
catList, err := handler.GetStoreAllCategories(ctx, vendorStoreID)
|
||||
catList, err := handler.GetStoreAllCategories(ctx, storeID, vendorStoreID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
catListMap := make(map[int][]*partner.BareCategoryInfo)
|
||||
for _, v := range catList {
|
||||
flattedCatList := flatCatList(catList)
|
||||
for _, v := range flattedCatList {
|
||||
catListMap[v.Level] = append(catListMap[v.Level], v)
|
||||
}
|
||||
var levelList []int
|
||||
@@ -56,7 +57,7 @@ func DeleteStoreAllCategories(ctx *jxcontext.Context, parentTask tasksch.ITask,
|
||||
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)
|
||||
err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID)
|
||||
return nil, err
|
||||
}, catListMap[levelList[step]])
|
||||
tasksch.HandleTask(task2, task, true).Run()
|
||||
@@ -67,3 +68,11 @@ func DeleteStoreAllCategories(ctx *jxcontext.Context, parentTask tasksch.ITask,
|
||||
_, err = task1.GetResult(0)
|
||||
return err
|
||||
}
|
||||
|
||||
func flatCatList(catList []*partner.BareCategoryInfo) (flattedCatList []*partner.BareCategoryInfo) {
|
||||
flattedCatList = append(flattedCatList, catList...)
|
||||
for _, v := range catList {
|
||||
flattedCatList = append(flattedCatList, flatCatList(v.Children)...)
|
||||
}
|
||||
return flattedCatList
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user