From 7a37f4fc0345f8da59dec7f230fd7ff4b40be916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 18 Apr 2023 15:44:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A1=91=E8=91=9A=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/system_store_sku.go | 70 +++++++++++++++++--- business/partner/purchase/mtwm/store_sku2.go | 4 +- 2 files changed, 62 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/system_store_sku.go b/business/jxstore/cms/system_store_sku.go index 15d137397..64f7c542e 100644 --- a/business/jxstore/cms/system_store_sku.go +++ b/business/jxstore/cms/system_store_sku.go @@ -3,11 +3,14 @@ package cms import ( "fmt" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" + "git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm" + "git.rosy.net.cn/jx-callback/business/partner/putils" "time" ) @@ -54,20 +57,28 @@ func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromStoreId, toStoreId int, i return nil, err } if v.Children != nil && len(v.Children) != 0 { - //for _, c := range v.Children { - // if err := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ - // CategoryCode: v.Code, - // Sequence: v.Sequence, - // }); err != nil { - // return nil, err - // } - //} + for _, c := range v.Children { + if err := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ + CategoryCode: v.Code, + SecondaryCategoryCode: c.Code, + SecondaryCategoryName: c.Name, + Sequence: c.Sequence, + }); err != nil { + return nil, err + } + } } } case 3: // 同步商品 - + fromFoodList, err1 := fromApi.RetailListAll(fromStore.VendorStoreID) + if err1 != nil { + return nil, err1 + } + if err := BatchInitData(ctx, fromFoodList, toApi, toStore.VendorStoreID); err != nil { + return nil, err + } } return } @@ -103,6 +114,45 @@ func LoadingStoreSkuList(ctx *jxcontext.Context, api *mtwmapi.API, poiCode strin return } -func LoadStoreCategoryList() { +// BatchInitData 批量创建商品 +func BatchInitData(ctx *jxcontext.Context, fromSku []*mtwmapi.AppFood, toApi *mtwmapi.API, vendorStoreID string) error { + foodDataList := make([]map[string]interface{}, len(fromSku)) + for i, storeSku := range fromSku { + foodData := make(map[string]interface{}) + foodDataList[i] = foodData + foodData[mtwmapi.KeyAppFoodCode] = storeSku.AppFoodCode + foodData["skus"] = storeSku.Skus + foodData["name"] = utils.LimitUTF8StringLen(storeSku.Name, mtwmapi.MaxSkuNameCharCount) + foodData["description"] = storeSku.Description + foodData["price"] = storeSku.Price + if storeSku.MinOrderCount != 0 { + foodData["min_order_count"] = storeSku.MinOrderCount + } else { + foodData["min_order_count"] = 1 + } + foodData["unit"] = storeSku.Unit + attr := mtwm.SwitchAttr(int64(storeSku.TagID)) + if attr != "" { + foodData["common_attr_value"] = attr + } + foodData["category_code"] = storeSku.CategoryCode + foodData["category_name"] = storeSku.CategoryName + foodData["is_sold_out"] = storeSku.IsSoldOut + foodData["picture"] = storeSku.Picture + foodData["picture_contents"] = storeSku.PictureContents + foodData["sequence"] = storeSku.Sequence + foodData["tag_id"] = storeSku.TagID + } + failedFoodList, err2 := toApi.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList) + if err := err2; err == nil { + if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil { + return err + } + } else if err2 != nil && len(failedFoodList) == 0 { + if errExt, ok := err2.(*utils.ErrorWithCode); ok { + return utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList) + } + } + return nil } diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index d9142bf15..b2ea34890 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -323,7 +323,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI foodData["min_order_count"] = 1 } foodData["unit"] = storeSku.Unit - attr := switchAttr(storeSku.VendorVendorCatID) + attr := SwitchAttr(storeSku.VendorVendorCatID) if attr != "" { foodData["common_attr_value"] = attr } @@ -452,7 +452,7 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v return failedList, err } -func switchAttr(vendorCatID int64) (attrs string) { +func SwitchAttr(vendorCatID int64) (attrs string) { switch vendorCatID { case 200002727: return mtwmapi.MtwmSkuAttr200002727