Files
jx-callback/business/jxstore/cms/sync_store_sku.go
2019-07-12 10:00:12 +08:00

50 lines
2.0 KiB
Go

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
}