因应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

View File

@@ -134,15 +134,21 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
subCatName = utils.FilterEmoji(subCatName)
globals.SugarLogger.Debugf("mtwm CreateStoreCategory vendorStoreID:%s, originName:%s, catCode:%d, catName:%s, subCatCode:%d, subCatName:%s, seq:%d",
vendorStoreID, originName, catCode, catName, subCatCode, subCatName, storeCat.Seq)
if !(originName == catName && subCatName == "") {
if globals.EnableMtwmStoreWrite {
// err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, originName, catName, subCatName, storeCat.Seq)
err = api.MtwmAPI.RetailCatUpdate2(vendorStoreID, tryCatName2Code(originName), originName, catCode2Str(catCode), catName, catCode2Str(subCatCode), subCatName, storeCat.Seq)
if storeCat.StoreCatSyncStatus&model.SyncFlagNewMask == 0 && // 修改分类名,但分类不存在
p.IsErrCategoryNotExist(err) && originName != "" {
storeCat.StoreCatSyncStatus |= model.SyncFlagNewMask
err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
}
if globals.EnableMtwmStoreWrite {
// err = api.MtwmAPI.RetailCatUpdate2(vendorStoreID, tryCatName2Code(originName), originName, catCode2Str(catCode), catName, catCode2Str(subCatCode), subCatName, storeCat.Seq)
param4Update := &mtwmapi.Param4UpdateCat{
CategoryCodeOrigin: tryCatName2Code(originName),
CategoryNameOrigin: originName,
CategoryCode: catCode2Str(catCode),
SecondaryCategoryCode: catCode2Str(subCatCode),
SecondaryCategoryName: subCatName,
Sequence: storeCat.Seq,
}
err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, catName, param4Update)
if storeCat.StoreCatSyncStatus&model.SyncFlagNewMask == 0 && // 修改分类名,但分类不存在
p.IsErrCategoryNotExist(err) && originName != "" {
storeCat.StoreCatSyncStatus |= model.SyncFlagNewMask
err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat)
}
}
if err == nil {
@@ -158,8 +164,7 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in
func (p *PurchaseHandler) DeleteStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID, vendorCatID string) (err error) {
if globals.EnableMtwmStoreWrite {
// err = api.MtwmAPI.RetailCatDelete(vendorStoreID, vendorCatID)
err = api.MtwmAPI.RetailCatDelete2(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID)
err = api.MtwmAPI.RetailCatDelete(vendorStoreID, tryCatName2Code(vendorCatID), vendorCatID)
}
return err
}