From a0c22a11839687ecf4f27c6eaa7da3aa280e7931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 13 May 2025 09:34:55 +0800 Subject: [PATCH] 1 --- business/partner/purchase/jd/sku2.go | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jd/sku2.go b/business/partner/purchase/jd/sku2.go index f8c7ca7bc..4f949c2b2 100644 --- a/business/partner/purchase/jd/sku2.go +++ b/business/partner/purchase/jd/sku2.go @@ -216,11 +216,12 @@ func skuInfo2Param(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (param *jd } func (p *PurchaseHandler) CreateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSyncInfo) (err error) { + jdApi := getAPI(sku.VendorOrgCode) param := skuInfo2Param(ctx, sku) if globals.EnableJdStoreWrite { - sku.VendorSkuID, err = getAPI(sku.VendorOrgCode).AddSku2(param) + sku.VendorSkuID, err = jdApi.AddSku2(param) if err != nil && strings.Contains(err.Error(), jdapi.ErrMustUPC) { - result, err2 := getAPI(sku.VendorOrgCode).BatchAddSkuByUPC([]*jdapi.CreateByUpcParam2{ + result, err2 := jdApi.BatchAddSkuByUPC([]*jdapi.CreateByUpcParam2{ &jdapi.CreateByUpcParam2{ OutSkuId: utils.Int2Str(sku.SkuID), Upc: sku.Upc, @@ -233,7 +234,29 @@ func (p *PurchaseHandler) CreateSku2(ctx *jxcontext.Context, sku *dao.StoreSkuSy } else { err = err2 } + } else if err != nil && strings.Contains(err.Error(), "类目ID不存在") { + recommendCategory, _ := jdApi.GetSkuCategoryBySkuName(param.SkuName) + if recommendCategory != nil && recommendCategory.CategoryId != model.NO { + param.CategoryID = int64(recommendCategory.CategoryId) + sku.VendorSkuID, _ = jdApi.AddSku2(param) + if sku.VendorSkuID != "" { + skuVendorCategory := &model.SkuVendorCategoryMap{ + NameID: sku.NameID, + VendorID: model.VendorIDJD, + } + skuVendorCategory.VendorCategoryID = utils.Int2Str(recommendCategory.CategoryId) + if err = dao.GetEntity(dao.GetDB(), skuVendorCategory, "NameID", "VendorID"); err != nil { + dao.WrapAddIDCULDEntity(skuVendorCategory, ctx.GetUserName()) + dao.CreateEntity(dao.GetDB(), skuVendorCategory) + } else { + dao.UpdateEntity(dao.GetDB(), skuVendorCategory, "VendorCategoryID") + } + } + //dao.ExecuteSQL(dao.GetDB(), ` UPDATE sku_category SET jd_category_id = ? WHERE id = ? `, []interface{}{recommendCategory.CategoryId, sku.LocalCategoryId}...) + //dao.ExecuteSQL(dao.GetDB(), ` UPDATE sku_name SET jd_category_id = ? WHERE id = ? `, []interface{}{recommendCategory.CategoryId, sku.NameID}) + } } + } else { sku.VendorSkuID = utils.Int64ToStr(jxutils.GenFakeID()) }