From 2c0e3b64cb92c5f649506f635852cae1d1738bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 4 Nov 2022 19:57:22 +0800 Subject: [PATCH] 1 --- .../partner/purchase/tiktok_store/store.go | 2 +- .../purchase/tiktok_store/store_sku2_utils.go | 77 +++++++++++++------ 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 31c82a4b0..7832cefb3 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -178,7 +178,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error if err != nil || warehouseID == 0 || utils.IsNil(warehouseID) { globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err) errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err)) - } else { //绑定 + } else { //绑定 if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err) errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err)) diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 1115b578b..bb25771f5 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "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" product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response" product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request" @@ -23,6 +24,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" + "math/rand" "strings" ) @@ -207,7 +209,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI temp, err := dao.QueryStoreBindInfo(storeDetail.ID) if err != nil || temp == nil || temp.TemplateID == 0 { // 运费模板 - param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail, temp) + param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail) if err != nil { return nil, err } @@ -382,43 +384,70 @@ func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) { } // GetDeliveryTemp 获取运费模板id,运费模板不存在则创建 -func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail, tempObj *model.FreightTemplate) (int64, error) { +func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail) (int64, error) { // 没有模板是查询线上模板 freightId, _ := api.GetStoreBindTemp(utils.Str2Int64(vendorStoreID)) if freightId == 0 { - freightId, err := CreateFreightTemplate(storeDetail.Store.ID) + // 创建门店运费模板 + productProvince := utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[0:2]) + tempDetail := &freightTemplate_create_request.FreightTemplateCreateParam{ + Template: &freightTemplate_create_request.Template{ + TemplateName: storeDetail.Name + utils.Int64ToStr(rand.Int63n(int64(storeDetail.ID))), + ProductProvince: productProvince, + ProductCity: int64(storeDetail.CityCode), + CalculateType: 2, + TransferType: 1, // 快递方式-1.快递 目前仅支持1 + RuleType: 1, // 模板类型-0:阶梯计价 1:固定运费 2:卖家包邮 3:货到付款 + FixedAmount: 500, //固定运费 单位:分 + }, + } + Columns := []freightTemplate_create_request.ColumnsItem{ + { + RuleAddress: fmt.Sprintf(`{"%d":{"%s":{"%s":nil}}}`, productProvince, utils.Int2Str(storeDetail.CityCode), utils.Int2Str(storeDetail.DistrictCode)), + IsOverFree: true, + OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), + ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{ + { + Id: productProvince, + Children: []freightTemplate_create_request.ChildrenItem_4{ + { + Id: int64(storeDetail.CityCode), + Children: []freightTemplate_create_request.ChildrenItem_5{ + { + Id: int64(storeDetail.DistrictCode), + Children: nil, + }, + }, + }, + }}, + }, + }, + } + // 固定运费模板 + if storeDetail.DeliveryFeeDeductionSill == 0 { + tempDetail.Template.TemplateName += "固定运费模板" + } else { + // 满减运费模板 + tempDetail.Template.TemplateName += "满减运费模板" + tempDetail.Columns = Columns // 满减 + } + temp, err := api.FreightTemplateCreate(tempDetail) if err != nil { return 0, err } + // 绑定门店运费模板 if err = api.BindFreightTemplate(&shop_bindStoreFreight_request.ShopBindStoreFreightParam{ StoreId: utils.Str2Int64(vendorStoreID), - FreightId: freightId, + FreightId: temp.TemplateId, }); err != nil { globals.SugarLogger.Debugf("BindFreightTemplate =err %s", err) return 0, err } - - // 保存到数据库 - if tempObj == nil { - param := &model.FreightTemplate{ - StoreID: 0, - VendorStoreID: "", - TemplateID: 0, - WarehouseID: 0, - FenceID: "", - TradeLimitID: 0, - } - dao.WrapUpdateULEntity(param, "jxAdmin") - if err := dao.CreateEntity(dao.GetDB(), param); err != nil { - globals.SugarLogger.Debugf("==================err %s", err.Error()) - } - } else { - if err := dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0); err != nil { - globals.SugarLogger.Debugf("==================err %s", err.Error()) - } - } + freightId = temp.TemplateId + dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0) } + globals.SugarLogger.Debugf("freightId =last %d", freightId) return freightId, nil }