From 0eb1d57344d211d2fae039aeb0451def544698f5 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 18 Oct 2019 16:10:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=A0=E5=BA=94mtwmapi.RetailCatUpdate?= =?UTF-8?q?=E7=9A=84=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/tempop/tempop.go | 37 ++++++++++++++++---- business/partner/purchase/mtwm/store_sku2.go | 27 ++++++++------ 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/business/jxstore/tempop/tempop.go b/business/jxstore/tempop/tempop.go index ec7337d83..f9626cab8 100644 --- a/business/jxstore/tempop/tempop.go +++ b/business/jxstore/tempop/tempop.go @@ -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 diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 498b4374a..3d0309d61 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -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 }