因应mtwmapi.RetailCatUpdate的改动

This commit is contained in:
gazebo
2019-10-18 16:10:10 +08:00
parent 7447b75e88
commit 0eb1d57344
2 changed files with 47 additions and 17 deletions

View File

@@ -15,6 +15,7 @@ import (
"git.rosy.net.cn/jx-callback/business/partner/delivery"
"git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/baseapi/utils/errlist"
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
@@ -1201,18 +1202,42 @@ func CheckImages(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hin
return hint, err
}
func fixMtwmCategoryList(cats []*partner.BareCategoryInfo, vendorStoreID string, name2CatMap map[string]*model.SkuCategory) (err error) {
func fixMtwmCategoryList(cats []*partner.BareCategoryInfo, vendorStoreID string, name2CatMap map[string]*model.SkuCategory, id2CatMap map[int]*model.SkuCategory) (err error) {
errList := errlist.New()
for _, v := range cats {
// 深度优先,先处理底层次的分类
errList.AddErr(fixMtwmCategoryList(v.Children, vendorStoreID, name2CatMap, id2CatMap))
var cat *model.SkuCategory
var catCodeStr string
rFilterCatName := utils.FilterEmoji(v.Name)
if cat := name2CatMap[rFilterCatName]; cat != nil {
if rCatCode := int(utils.Str2Int64WithDefault(v.VendorCatID, 0)); rCatCode > 0 {
catCodeStr = utils.Int2Str(rCatCode)
if catCodeStr == v.VendorCatID { // 防止带有数字分类名误被认为是catCode
cat = id2CatMap[rCatCode]
} else {
catCodeStr = ""
}
}
if cat == nil {
cat = name2CatMap[rFilterCatName]
}
if cat != nil {
if v.Name != cat.Name || v.VendorCatID != utils.Int2Str(cat.ID) {
errList.AddErr(api.MtwmAPI.RetailCatUpdate2(vendorStoreID, "", v.Name, utils.Int2Str(cat.ID), cat.Name, "", "", v.Seq))
errList.AddErr(api.MtwmAPI.RetailCatUpdate(vendorStoreID, cat.Name, &mtwmapi.Param4UpdateCat{
CategoryCodeOrigin: catCodeStr,
CategoryNameOrigin: v.Name,
CategoryCode: utils.Int2Str(cat.ID),
Sequence: v.Seq,
}))
}
} else if rFilterCatName != v.Name {
errList.AddErr(api.MtwmAPI.RetailCatUpdate2(vendorStoreID, "", v.Name, "", rFilterCatName, "", "", v.Seq))
errList.AddErr(api.MtwmAPI.RetailCatUpdate(vendorStoreID, rFilterCatName[:len(rFilterCatName)-2], &mtwmapi.Param4UpdateCat{
CategoryCodeOrigin: catCodeStr,
CategoryNameOrigin: v.Name,
Sequence: v.Seq,
}))
}
errList.AddErr(fixMtwmCategoryList(v.Children, vendorStoreID, name2CatMap))
}
return errList.GetErrListAsOne()
}
@@ -1258,7 +1283,7 @@ func FixMtwmCategory(ctx *jxcontext.Context, mtwmStoreIDs []int, isAsync, isCont
if mtwmIDMap == nil || mtwmIDMap[storeID] == 1 {
catList, err := mtwm.CurPurchaseHandler.GetStoreAllCategories(ctx, 0, storeID)
if err == nil {
err = fixMtwmCategoryList(catList, storeID, name2CatMap)
err = fixMtwmCategoryList(catList, storeID, name2CatMap, id2CatMap)
}
}
return retVal, err