因应mtwmapi.RetailCatUpdate的改动
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user