From 69057888e1d7dcf1ccda3b7220f00b62de7f5aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Feb 2023 14:55:02 +0800 Subject: [PATCH 1/5] 1 --- business/partner/purchase/mtwm/store_sku2.go | 22 +++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index f846cb18f..3b1ec127e 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -157,11 +157,31 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in SecondaryCategoryName: subCatName, Sequence: storeCat.Seq, } - err = getAPI(storeCat.VendorOrgCode, storeID, vendorStoreID).RetailCatUpdate(vendorStoreID, catName, param4Update) + api := getAPI(storeCat.VendorOrgCode, storeID, vendorStoreID) + err = api.RetailCatUpdate(vendorStoreID, catName, param4Update) if storeCat.CatSyncStatus&model.SyncFlagNewMask == 0 && p.IsErrCategoryNotExist(err) && originName != "" { // 修改分类名,但分类不存在 storeCat.CatSyncStatus |= model.SyncFlagNewMask err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat) } + if err != nil && strings.Contains(err.Error(), "门店内存在重复的分类:") { + storeCategoryList, err2 := api.RetailCatList(vendorStoreID) + if err2 != nil { + err = err2 + } else { + for _, v := range storeCategoryList { + if len(v.Children) > 0 { + for _, c := range v.Children { + if strings.Contains(c.Name, err.Error()) { + api.RetailCatDelete(vendorStoreID, "", c.Name) + } + } + } + if strings.Contains(v.Name, err.Error()) { + api.RetailCatDelete(vendorStoreID, "", v.Name) + } + } + } + } } if err == nil { // storeCat.VendorCatID = utils.FilterEmoji(storeCat.Name) From bb8ab7e5c2684d56645061da73d0199d27b7a2cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Feb 2023 15:08:23 +0800 Subject: [PATCH 2/5] 1 --- business/partner/purchase/mtwm/store_sku2.go | 1 + business/partner/purchase/tiktok_store/order.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 3b1ec127e..784f6256c 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -164,6 +164,7 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in err = p.CreateStoreCategory(ctx, storeID, vendorStoreID, storeCat) } if err != nil && strings.Contains(err.Error(), "门店内存在重复的分类:") { + globals.SugarLogger.Debugf("==========err %s", err.Error()) storeCategoryList, err2 := api.RetailCatList(vendorStoreID) if err2 != nil { err = err2 diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index d66bbb706..66ec28f1e 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -311,7 +311,7 @@ func (c *PurchaseHandler) onOrderMsg(msgId, orderId string, msg interface{}) (re if err := partner.CurOrderManager.OnOrderNew(order, status); err != nil { return tiktokShop.Err2CallbackResponse(err, "") } - orderMap, err := c.getOrderMap("", orderId, "") + orderMap, err := c.getOrderMap(utils.Int64ToStr(appOrgCode), orderId, "") utils.CallFuncAsync(func() { switch msgId { case tiktokShop.CallbackPayOrderMsgTagId: From 5efab7cb9217b014cd67df0cf3c7ccc8d27a7ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Feb 2023 15:37:08 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=89=93=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/mtwm/store_sku2.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 784f6256c..5a6fdfb7a 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -166,6 +166,8 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in if err != nil && strings.Contains(err.Error(), "门店内存在重复的分类:") { globals.SugarLogger.Debugf("==========err %s", err.Error()) storeCategoryList, err2 := api.RetailCatList(vendorStoreID) + globals.SugarLogger.Debugf("==========err2 %v", err2) + globals.SugarLogger.Debugf("==========err %s", utils.Format4Output(storeCategoryList, false)) if err2 != nil { err = err2 } else { From 4cb10ffe58086162785affa95c1d72f76a603b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 21 Feb 2023 11:10:04 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=96=E9=9F=B3?= =?UTF-8?q?=E6=A0=87=E5=93=81=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E5=93=81?= =?UTF-8?q?=E7=89=8C=E6=8E=88=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 2 - business/model/dao/sku.go | 6 ++ business/model/dao/store_sku.go | 32 ++++---- business/model/sku.go | 82 ++++++++----------- .../purchase/tiktok_store/store_sku2_utils.go | 56 ++++++++++++- 5 files changed, 111 insertions(+), 67 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index ef96e6dc6..b81e30658 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -435,10 +435,8 @@ func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyn } else { updateItemList := make([]*dao.KVUpdateItem, len(storeSkuList)) for k, v := range storeSkuList { - //globals.SugarLogger.Debugf("======skusyncStatus %s", utils.Format4Output(v, false)) updateItemList[k] = sku2Update(vendorID, v, syncStatus) } - //globals.SugarLogger.Debugf("========updateItemList=== %s", utils.Format4Output(updateItemList, false)) num, err = dao.BatchUpdateEntityByKV(db, updateItemList) if vendorID == model.VendorIDYB { err = updateYbOhterSku(db, storeSkuList) diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index 2c0033b68..53146f2ad 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -171,6 +171,12 @@ func UpdateSkuNameTiktokAttr(db *DaoDB, id int64, attr string) { sql := ` UPDATE sku_name SET tiktok_attribute = ? WHERE id = ? ` ExecuteSQL(db, sql, []interface{}{attr, id}...) } + +func UpdateSkuNameTiktokBrandName(db *DaoDB, upc, brandName, brandId string) { + sql := ` UPDATE sku_name SET upc_brand_name = ?,upc_tiktok_brand_id = ? WHERE upc = ? ` + ExecuteSQL(db, sql, []interface{}{brandName, brandId, upc}...) +} + func GetSkuNames(db *DaoDB, nameIDs []int, upcs []string, name string, isExd bool) (skuNameList []*model.SkuName, err error) { sql := ` SELECT t1.* diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 3b5def8f9..32b8e34f0 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -96,19 +96,21 @@ type StoreSkuSyncInfo struct { ExPrefixEnd *time.Time // NameID int `orm:"column(name_id)"` - VendorNameID string `orm:"column(vendor_name_id)"` // 暂时无用 - Name string - Unit string - Upc string - IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定 - NameStatus int - SellCities []string - NameCategoryID int `orm:"column(name_category_id)"` - TiktokAttribute string `orm:"column(tiktok_attribute)"` - YbNameSuffix string //银豹的商品条码后缀 - YbBarCode string //银豹的商品条码 - JdsStockSwitch int - PreparationTime int + VendorNameID string `orm:"column(vendor_name_id)"` // 暂时无用 + Name string + Unit string + Upc string + UpcBrandName string `orm:"column(upc_brand_name)" json:"upcBrandName"` // upc商品时使用(品牌名称) + UpcTiktokBrandId string `orm:"column(upc_tiktok_brand_id)" json:"upcTiktokBrandId"` // upc商品时使用(抖音品牌id) + IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定 + NameStatus int + SellCities []string + NameCategoryID int `orm:"column(name_category_id)"` + TiktokAttribute string `orm:"column(tiktok_attribute)"` + YbNameSuffix string //银豹的商品条码后缀 + YbBarCode string //银豹的商品条码 + JdsStockSwitch int + PreparationTime int // 平台相关的图片信息 Img string @@ -571,7 +573,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end, t1.jds_ware_id, t1.stock, t1.mt_ladder_box_price, t2.*, t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.category_id name_category_id, t3.yb_name_suffix,t3.tiktok_attribute, - t3.jds_stock_switch, t3.preparation_time, t3.img_watermark, t3.ex_vendor_id, t3.img img_origin, + t3.jds_stock_switch, t3.preparation_time, t3.img_watermark, t3.ex_vendor_id, t3.img img_origin,t3.upc_brand_name,t3.upc_tiktok_brand_id, IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, IF(t15.%s <> '', t15.%s, t3.img3) img3, @@ -708,7 +710,7 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at, t1.stock, t2.*, t2.id sku_id, t2m.vendor_thing_id vendor_sku_id, - t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, t3.category_id name_category_id,t3.tiktok_attribute, + t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, t3.category_id name_category_id,t3.tiktok_attribute,t3.upc_brand_name,t3.upc_tiktok_brand_id, IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, IF(t13.%s <> '', t13.%s, t3.desc_img) desc_img, diff --git a/business/model/sku.go b/business/model/sku.go index cf9166331..491cb1f61 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -159,54 +159,40 @@ func (*SkuCategory) TableUnique() [][]string { type SkuName struct { ModelIDCULD - - Prefix string `orm:"size(255)" json:"prefix"` - Name string `orm:"size(255)" json:"name"` - - ExPrefix string `orm:"size(255)" json:"exPrefix"` - ExPrefixBegin *time.Time `orm:"null" json:"exPrefixBegin"` - ExPrefixEnd *time.Time `orm:"null" json:"exPrefixEnd"` - ExVendorID int `orm:"column(ex_vendor_id)" json:"exVendorID"` - - BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // todo,此属性暂时没有使用,且有问题,应该是不同平台都有一个brandid - CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别 - JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别 - - IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定 - Unit string `orm:"size(8)" json:"unit"` - SpecQuality float32 `json:"-"` // 为份必然为500,这个主要作用只是用于确保SkuName的唯一性 - SpecUnit string `orm:"size(8)" json:"-"` // 为份必然为克,这个主要作用只是用于确保SkuName的唯一性 - Price int `json:"price"` // 单位为分,标准价,不为份的就为实际标准价,为份的为每市斤价,实际还要乘质量。todo 为份的确定必须有质量 - - Img string `orm:"size(512)" json:"img"` - Img2 string `orm:"size(512)" json:"img2"` // 第二张图片 - Img3 string `orm:"size(512)" json:"img3"` //第三张图片 - Img4 string `orm:"size(512)" json:"img4"` //第三张图片 - Img5 string `orm:"size(512)" json:"img5"` //第三张图片 - - ImgWatermark string `orm:"size(512)" json:"imgWatermark"` //图片水印 - ImgMix string `orm:"size(512)" json:"imgMix"` //图片混合水印的图片 - // ImgEbai string `orm:"size(255)" json:"imgEbai"` // 饿百图片地址 - // ImgHashCode string `orm:"size(255);index" json:"img_hash_code"` - - DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述 - // DescImgEbai string `orm:"size(255)" json:"descImgEbai"` // 饿百的商品详情图片描述RTF - - Upc *string `orm:"size(20)"` - Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status - IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU - - // JdID int64 `orm:"column(jd_id);null;index" json:"jdID"` - // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` - - // LinkID int `orm:"column(link_id);null;index" json:"linkID"` - YbNameSuffix string `json:"ybNameSuffix"` //银豹商品后缀 - JdsStockSwitch int8 `orm:"default(1)" json:"jdsStockSwitch"` //京东商城总库存 - PreparationTime int `orm:"default(1)" json:"preparationTime"` //商品准备时长 - BestSeller int `json:"bestSeller"` //畅销品 0不是 1是 - Video string `json:"video"` //商品视频地址 - VideoID string `orm:"column(video_id)" json:"videoID"` //商品视频美团ID - TiktokAttribute string `orm:"column(tiktok_attribute);size(1024)" json:"tiktokAttribute"` //抖音分类属性的存储 + Prefix string `orm:"size(255)" json:"prefix"` + Name string `orm:"size(255)" json:"name"` + ExPrefix string `orm:"size(255)" json:"exPrefix"` + ExPrefixBegin *time.Time `orm:"null" json:"exPrefixBegin"` + ExPrefixEnd *time.Time `orm:"null" json:"exPrefixEnd"` + ExVendorID int `orm:"column(ex_vendor_id)" json:"exVendorID"` + BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // todo,此属性暂时没有使用,且有问题,应该是不同平台都有一个brandid + CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别 + JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别 + IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定 + Unit string `orm:"size(8)" json:"unit"` + SpecQuality float32 `json:"-"` // 为份必然为500,这个主要作用只是用于确保SkuName的唯一性 + SpecUnit string `orm:"size(8)" json:"-"` // 为份必然为克,这个主要作用只是用于确保SkuName的唯一性 + Price int `json:"price"` // 单位为分,标准价,不为份的就为实际标准价,为份的为每市斤价,实际还要乘质量。todo 为份的确定必须有质量 + Img string `orm:"size(512)" json:"img"` + Img2 string `orm:"size(512)" json:"img2"` // 第二张图片 + Img3 string `orm:"size(512)" json:"img3"` //第三张图片 + Img4 string `orm:"size(512)" json:"img4"` //第三张图片 + Img5 string `orm:"size(512)" json:"img5"` //第三张图片 + ImgWatermark string `orm:"size(512)" json:"imgWatermark"` //图片水印 + ImgMix string `orm:"size(512)" json:"imgMix"` //图片混合水印的图片 + DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述 + Upc *string `orm:"size(20)"` // 标品upc码 + UpcBrandName string `orm:"column(upc_brand_name);size(16)" json:"upcBrandName"` // upc标品的品牌名称 + UpcTiktokBrandId string `orm:"column(upc_tiktok_brand_id);size(16)" json:"upcTiktokBrandId"` // 根据upc码获取到的抖音品牌id + Status int `orm:"default(1)" json:"status"` // skuname状态,取值同sku.Status + IsSpu int8 `orm:"column(is_spu)" json:"isSpu"` // 用于指明是否SKUNAME当成SPU + YbNameSuffix string `json:"ybNameSuffix"` //银豹商品后缀 + JdsStockSwitch int8 `orm:"default(1)" json:"jdsStockSwitch"` //京东商城总库存 + PreparationTime int `orm:"default(1)" json:"preparationTime"` //商品准备时长 + BestSeller int `json:"bestSeller"` //畅销品 0不是 1是 + Video string `json:"video"` //商品视频地址 + VideoID string `orm:"column(video_id)" json:"videoID"` //商品视频美团ID + TiktokAttribute string `orm:"column(tiktok_attribute);size(1024)" json:"tiktokAttribute"` //抖音分类属性的存储 } func (*SkuName) TableUnique() [][]string { diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 5742aa595..138433a29 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "fmt" + "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request" @@ -26,6 +27,7 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api/apimanager" "math/rand" "strings" "time" @@ -247,7 +249,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI updateParam.Pic = param.Pic updateParam.Description = param.Description updateParam.WeightUnit = tiktokShop.WeightUint_G - updateParam.StandardBrandId = param.StandardBrandId // 默认品牌京西菜市 + updateParam.StandardBrandId, err = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, updateParam.CategoryLeafId) + updateParam.ProductId = mainOrderDetail.ProductId updateParam.MainProductId = mainProductId updateParam.SpecPrices = param.SpecPrices @@ -462,7 +465,13 @@ func makeMainProductSku(db *dao.DaoDB, api *tiktokShop.API, storeSku *dao.StoreS return } } - param.StandardBrandId = 596120136 // 默认品牌京西菜市 596120136 + + param.StandardBrandId, err = getTiktokBrandId(api, db, storeSku.Upc, storeSku.UpcBrandName, storeSku.UpcTiktokBrandId, param.CategoryLeafId) + if err != nil { + failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) + return + } + param.FreightId, param.SaleLimitId, err = getFreightIdAndSaleLimitId(api, db, storeDetail, vendorStoreID) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSku, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) @@ -471,6 +480,49 @@ func makeMainProductSku(db *dao.DaoDB, api *tiktokShop.API, storeSku *dao.StoreS return } +func getTiktokBrandId(api *tiktokShop.API, db *dao.DaoDB, upc, upcBrandName, upcTiktokBrandId string, categoryLeafId int64) (int64, error) { + if upc == "" { // 默认品牌京西菜市 596120136 + return 596120136, nil + } else if upc != "" && upcBrandName != "" && upcTiktokBrandId != "" { + return utils.Str2Int64(upcTiktokBrandId), nil + } else if upc != "" && upcBrandName != "" && upcTiktokBrandId == "" { + standardBrandId, err := api.GetSkuBrand(categoryLeafId, upcBrandName) + if err != nil { + return 0, err + } + dao.UpdateSkuNameTiktokBrandName(db, upc, upcBrandName, utils.Int64ToStr(standardBrandId)) + return standardBrandId, nil + } else if upc != "" && upcBrandName == "" && upcTiktokBrandId == "" { + brandName, err := getBrandByBrandName(upc) + if err != nil { + return 0, err + } + standardBrandId, err := api.GetSkuBrand(categoryLeafId, brandName) + if err != nil { + return 0, err + } + dao.UpdateSkuNameTiktokBrandName(db, upc, brandName, utils.Int64ToStr(standardBrandId)) + return standardBrandId, nil + } + return 0, errors.New("getTiktokBrandId 获取抖音品牌id异常") +} + +func getBrandByBrandName(upcCode string) (string, error) { + apijd := apimanager.CurAPIManager.GetAPI(model.VendorIDJD, "320406").(*jdapi.API) + result, err := apijd.GetJdUpcCodeByName("", upcCode, 1, 5) + if err != nil { + return "", err + } + if len(result) != model.YES { + return "", fmt.Errorf("upc码[%s],获取商品不唯一", upcCode) + } + + if result[0].BrandName != "" { + return result[0].BrandName, nil + } + return strings.Split(result[0].OriginalName, " ")[0], nil +} + func loadMainProductId(api *tiktokShop.API, storeSku *dao.StoreSkuSyncInfo, mainProductId string) *product_detail_response.ProductDetailData { // 这有可能获取的值主商品也有可能是子商品,我们需要的是主商品id和状态 mainOrderDetailProductId, err := api.GetSkuDetail(mainProductId, "") From a92c1f03ba403f3ddb489dd3f531c0aca40036c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 21 Feb 2023 11:22:03 +0800 Subject: [PATCH 5/5] 1 --- business/partner/purchase/mtwm/store_sku2.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 5a6fdfb7a..1b95a38fc 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -172,6 +172,7 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in err = err2 } else { for _, v := range storeCategoryList { + globals.SugarLogger.Debugf("storeCategoryList==========err %s", err.Error()) if len(v.Children) > 0 { for _, c := range v.Children { if strings.Contains(c.Name, err.Error()) {