From 06d2f6208423df67b014c1b5f46e8af0c1e64ff9 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Tue, 7 Mar 2023 15:01:36 +0800 Subject: [PATCH] 1 --- business/jxstore/cms/store.go | 9 +- business/model/dao/freight_template.go | 32 +++ .../partner/purchase/tiktok_store/store.go | 249 ++++++------------ .../purchase/tiktok_store/store_test.go | 2 +- .../purchase/tiktok_store/warehouse.go | 17 +- controllers/cms_store.go | 20 ++ routers/commentsRouter_controllers.go | 9 + 7 files changed, 162 insertions(+), 176 deletions(-) create mode 100644 business/model/dao/freight_template.go diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 93b6f3d9f..d86e48ca9 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1527,7 +1527,7 @@ func AddStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, vendorID int, vend return nil, fmt.Errorf("此平台门店ID已在京西有绑定,请先解除绑定,平台门店ID :[%v]", storeMap.VendorStoreID) } if vendorID == model.VendorIDDD { //抖店绑定店铺时 检查并补充创建 - if err2 := tiktok_store.CreateOrUpdateAll(vendorOrgCode, int64(storeMap.StoreID), utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.DeliveryFeeDeductionFee), utils.Str2Int64(storeMap.YbStorePrefix)); err2 != nil { + if err2 := tiktok_store.CreateOrUpdateAll(vendorOrgCode, int64(storeMap.StoreID), utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.DeliveryFeeDeductionFee), int64(storeMap.DeliveryFeeDeductionSill), utils.Str2Int64(storeMap.YbStorePrefix), storeMap.YbAppID); err2 != nil { errList.AddErr(err2) } } @@ -1712,7 +1712,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor } //特殊处理抖店运费模板、打包费 if DDFlag { globals.SugarLogger.Debug("进入DDFlag 特殊处理运费模板、起送价、打包费、自动运力设置") - if err := tiktok_store.SpecialTreat(storeMap.VendorOrgCode, utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.StoreID), int64(storeMap.DeliveryFeeDeductionFee), utils.Str2Int64(storeMap.YbStorePrefix), storeMap.YbAppID); err != nil { + if err := tiktok_store.SpecialTreat(storeMap.VendorOrgCode, utils.Str2Int64(storeMap.VendorStoreID), int64(storeMap.StoreID), int64(storeMap.DeliveryFeeDeductionFee), int64(storeMap.DeliveryFeeDeductionSill), utils.Str2Int64(storeMap.YbStorePrefix), storeMap.YbAppID); err != nil { errList.AddErr(fmt.Errorf("抖店运费模板、起送价、打包费、自动运力设置相关处理错误:%v", err)) } } @@ -6132,6 +6132,11 @@ func SetStoreAutoCallRider(vendorOrgCode string, openIDs, closeIDs []int64) (str return "", nil } +//操作 freight_template +func ReplaceInsertFreight(storeID, templateID, warehouseID, tradeLimitID int, vendorStoreID, fenceID string) error { + return dao.ReplaceInsertFreight2(storeID, templateID, warehouseID, tradeLimitID, vendorStoreID, fenceID) +} + //辅助函数 func String2ArrayInt64(data string) (retVal []int64) { temp := strings.Split(data, ",") diff --git a/business/model/dao/freight_template.go b/business/model/dao/freight_template.go new file mode 100644 index 000000000..868620cca --- /dev/null +++ b/business/model/dao/freight_template.go @@ -0,0 +1,32 @@ +package dao + +import ( + "fmt" + + "git.rosy.net.cn/jx-callback/business/model" +) + +func ReplaceInsertFreight2(storeID, templateID, warehouseID, tradeLimitID int, vendorStoreID, fenceID string) error { + if storeID == 0 || len(vendorStoreID) == 0 { + return fmt.Errorf("storeID或vendorStoreID不允许为空") + } + sqlStr := `REPLACE INTO freight_template (store_id, vendor_store_id, template_id, warehouse_id, fence_id, trade_limit_id) +SELECT ?,?,?,?,?,? FROM DUAL WHERE NOT EXISTS(SELECT COUNT(store_id) FROM freight_template WHERE store_id = ?)=0` + sqlParam := []interface{}{storeID, vendorStoreID, templateID, warehouseID, fenceID, tradeLimitID, storeID} + _, err := ExecuteSQL(GetDB(), sqlStr, sqlParam) + return err +} +func ReplaceInsertFreight(tem *model.FreightTemplate) error { + if tem.StoreID == 0 || len(tem.VendorStoreID) == 0 { + return fmt.Errorf("storeID或vendorStoreID不允许为空") + } + sqlStr := `REPLACE INTO freight_template (store_id, vendor_store_id, template_id, warehouse_id, fence_id, trade_limit_id) +SELECT ?,?,?,?,?,? FROM DUAL WHERE NOT EXISTS(SELECT COUNT(store_id) FROM freight_template WHERE store_id = ?)=0` + sqlParam := []interface{}{tem.StoreID, tem.VendorStoreID, tem.TemplateID, tem.WarehouseID, tem.FenceID, tem.TradeLimitID, tem.StoreID} + _, err := ExecuteSQL(GetDB(), sqlStr, sqlParam) + return err +} + +func InsertItemFreight() { + +} diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 363107afd..2a1df1b08 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -143,7 +143,7 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri errList.AddErr(dao.CreateEntity(db, storeMap)) } vendorStoreIDs = utils.Int64ToStr(resp.ResultList[0].Store.StoreId) - if err := CreateOrUpdateAll(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), resp.ResultList[0].Store.StoreId, int64(storeDetail.DeliveryFeeDeductionFee), utils.Str2Int64(storeDetail.YbStorePrefix)); err != nil { + if err := CreateOrUpdateAll(storeDetail.VendorOrgCode, int64(storeDetail.Store.ID), resp.ResultList[0].Store.StoreId, int64(storeDetail.DeliveryFeeDeductionFee), int64(storeMap.DeliveryFeeDeductionSill), utils.Str2Int64(storeDetail.YbStorePrefix), storeDetail.YbAppID); err != nil { errList.AddErr(err) } } @@ -151,20 +151,22 @@ func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri return vendorStoreIDs, errors.New(fmt.Sprintf("创建抖店平台店铺相关错误信息:%v", endErr)) } -func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, minPrice int64) error { +func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, deliveryFeeDeductionSill, minPrice int64, autoCall string) error { var ( errList = errlist.New() - FreightTemplate = &model.FreightTemplate{} - db *dao.DaoDB + FreightTemplate = &model.FreightTemplate{ + StoreID: int(storeID), + VendorStoreID: utils.Int64ToStr(vendorStoreID), + } ) //检查门店是否审核通过 if IfAuditPass(vendorOrgCode, vendorStoreID) { return fmt.Errorf("门店%d 未审核通过,请通过后再进行绑定", storeID) } - //1.平台获取门店运费模板 + //1.运费模板 if bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID); err != nil || bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误 //创建 - if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { + if freightTemplateID, err := CreateFreightTemplate(int(storeID), int(deliveryFeeDeductionSill)); err != nil || freightTemplateID == 0 { errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) } else { //绑定 if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { @@ -174,6 +176,10 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee } } } else { + if err := UpdateFreightTemplate(int(storeID)); err != nil { + globals.SugarLogger.Debug("更新运费模板失败:", err) + errList.AddErr(fmt.Errorf("更新运费模板失败:%v", err)) + } FreightTemplate.TemplateID = bindFreightIDs } @@ -196,6 +202,10 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee } //(2)电子围栏 if len(bind[utils.Int64ToStr(storeID)][0].OutFenceIds) > 0 { + tempFenceID := bind[utils.Int64ToStr(storeID)][0].OutFenceIds[0] + if err1 := UpdateFenceByStore(vendorOrgCode, tempFenceID, int(vendorStoreID)); err1 != nil { + errList.AddErr(fmt.Errorf("平台门店(%d),门店(%d)更新电子围栏失败:%v", vendorStoreID, storeID, err1)) + } FreightTemplate.FenceID = bind[utils.Int64ToStr(storeID)][0].OutFenceIds[0] //保存一个就足够 } else { if fenceID, err := CreateFenceByStore(vendorOrgCode, storeID); err != nil || len(fenceID) == 0 { @@ -228,135 +238,39 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil { errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) } - //5.同步进数据库 - FreightTemplate.StoreID = int(storeID) - FreightTemplate.VendorStoreID = utils.Int64ToStr(vendorStoreID) - if err := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil { - if _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID", "StoreID", "VendorStoreID"); err1 != nil { - globals.SugarLogger.Debug("更新操作,同步进数据库错误信息:%v", err1) - //errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1)) - } else { - globals.SugarLogger.Debug("创建操作,同步进数据库错误信息:%v", err) - //errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err)) + //5.设置自动运力 + if autoCall == tiktok_api.AutoCallRiderOpen { + if err := SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderOpen, vendorStoreID); err != nil { + errList.AddErr(fmt.Errorf("开启门店自动运力失败:%v", err)) + } + } else { + if err := SetStoreAutoCallRider(vendorOrgCode, tiktok_api.AutoCallRiderClose, vendorStoreID); err != nil { + errList.AddErr(fmt.Errorf("关闭门店自动运力失败:%v", err)) } } + + //6.同步进数据库 + if err := dao.ReplaceInsertFreight(FreightTemplate); err != nil { + globals.SugarLogger.Debug("同步数据库错误信息:%v", err) + } + //if err := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil { + // if _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID", "StoreID", "VendorStoreID"); err1 != nil { + // globals.SugarLogger.Debug("更新操作,同步进数据库错误信息:%v", err1) + // //errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1)) + // } else { + // globals.SugarLogger.Debug("创建操作,同步进数据库错误信息:%v", err) + // //errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err)) + // } + //} endErr := errList.GetErrListAsOne() if endErr != nil { - globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, false)))) + globals.SugarLogger.Debug("绑定抖音门店需进行的错误处理:%v", errors.New(fmt.Sprintf("%s", utils.Format4Output(errList, false)))) return endErr } else { return nil } } -//逻辑未修改,暂时不使用 -//func CreateAndBindAllV2(vendorOrgCode string, storeID, vendorStoreID, deliveryFeeDeductionFee, minPrice int64) error { -// var ( -// db *dao.DaoDB -// ctx *jxcontext.Context -// errList = errlist.New() -// FreightTemplate = &model.FreightTemplate{ -// VendorStoreID: utils.Int64ToStr(vendorStoreID), -// StoreID: int(storeID), -// } -// ) -// task := tasksch.NewParallelTask("CreateAndBindAllV2", tasksch.NewParallelConfig().SetIsContinueWhenError(true).SetParallelCount(1), ctx, -// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { -// step := batchItemList[0].(int) -// switch step { -// case 0: //1.门店运费模板 -// bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) -// if err != nil { -// globals.SugarLogger.Debugf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err) -// errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) -// } -// if bindFreightIDs == 0 { -// if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { -// globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) -// errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) -// } else { -// if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { -// globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) -// errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) -// } else { -// FreightTemplate.TemplateID = freightTemplateID -// } -// } -// } else { -// FreightTemplate.TemplateID = bindFreightIDs -// } -// case 1: //2.仓库以及电子围栏 -// warehouseID, err := CreateWarehouse(vendorOrgCode, storeID) -// if err != nil || warehouseID == 0 { -// globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err) -// errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err)) -// } else { //绑定 -// if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID -// globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err) -// errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%s 失败:%v", storeID, warehouseID, err)) -// } else { -// FreightTemplate.WarehouseID = utils.Str2Int64(warehouseID) -// } -// } -// case 2: //3.电子围栏 -// fenceID, err := CreateFenceByStore(vendorOrgCode, storeID) -// if err != nil || utils.Str2Int(fenceID) == 0 || utils.IsNil(fenceID) { //不管存在与否 直接创建 -// globals.SugarLogger.Debugf("门店(%d) 创建电子围栏失败:%v", storeID, err) -// errList.AddErr(fmt.Errorf("门店(%d) 创建电子围栏失败:%v", storeID, err)) -// } else { //绑定 -// if err := BindFenceByStore(vendorOrgCode, vendorStoreID, []string{utils.Int64ToStr(storeID)}); err != nil { -// globals.SugarLogger.Debugf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err) -// errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) -// } else { -// FreightTemplate.FenceID = utils.Int64ToStr(storeID) -// } -// } -// case 3: //4.限售模板 -// bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID) -// if err != nil { -// globals.SugarLogger.Debugf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err) -// errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err)) -// } -// if bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //未绑定限售模板,目前默认创建起送价限售模板 -// if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { -// errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err)) -// } else { -// FreightTemplate.TradeLimitID = createSaleLimitID -// } -// } else { -// if updateSaleLimitID, err := UpdateTradeLimitTemplate(vendorOrgCode, bindSaleLimitID, minPrice); err != nil { -// errList.AddErr(fmt.Errorf("更新门店起送价限售模板失败:%v", err)) -// } else { -// FreightTemplate.TradeLimitID = updateSaleLimitID -// } -// } -// case 4: //5.门店打包费 默认为 0 -// if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil { -// errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) -// } -// } -// return nil, err -// }, []int{0, 1, 2, 3, 4}) -// tasksch.ManageTask(task).Run() -// //6.同步进数据库 -// globals.SugarLogger.Debugf("preTest TradeLimitID==%d,TemplateID==%d, WarehouseID==%d,FenceID==%s", FreightTemplate.TradeLimitID, FreightTemplate.TemplateID, FreightTemplate.WarehouseID, FreightTemplate.FenceID) -// if err := dao.CreateEntity(db, FreightTemplate); err != nil { -// _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "WarehouseID", "FenceID", "TradeLimitID") -// if err1 == nil { -// errList.AddErr(fmt.Errorf("同步Step1进数据库错误信息:%v", err)) -// } else { -// errList.AddErr(fmt.Errorf("同步Step2进数据库错误信息:%v", err1)) -// } -// } -// endErr := errList.GetErrListAsOne() -// if utils.IsNil(errList) { -// globals.SugarLogger.Debug("绑定门店需进行的错误处理:%v", endErr) -// return endErr -// } else { -// return nil -// } -//} - // shop/editStore 编辑门店信息 正向推送平台 func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) { var ( @@ -366,7 +280,10 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin errList = errlist.New() timeStr = "" tempFenceID string - FreightTemplate = &model.FreightTemplate{} + FreightTemplate = &model.FreightTemplate{ + StoreID: storeID, + VendorStoreID: storeInfo.VendorStoreID, + } ) if db == nil { db = dao.GetDB() @@ -461,20 +378,20 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin } //同步进数据库 FreightTemplate.FenceID = tempFenceID - FreightTemplate.StoreID = storeID - FreightTemplate.VendorStoreID = storeInfo.VendorStoreID - if err = dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil { - if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID", "StoreID", "VendorStoreID"); err1 != nil { - errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1)) - } else { - errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err)) - } + if err := dao.ReplaceInsertFreight(FreightTemplate); err != nil { + globals.SugarLogger.Debug("同步数据库错误信息:%v", err) } + //if err = dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil { + // if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID", "StoreID", "VendorStoreID"); err1 != nil { + // errList.AddErr(fmt.Errorf("更新操作,同步进数据库错误信息:%v", err1)) + // } else { + // errList.AddErr(fmt.Errorf("创建操作,同步进数据库错误信息:%v", err)) + // } + //} if endErr := errList.GetErrListAsOne(); endErr != nil { globals.SugarLogger.Debugf("DouDian UpdateStore wrong information:%v", endErr) } return nil - //return errors.New(fmt.Sprintf("更新抖店平台店铺信息,相关处理错误:%v", endErr)) } } @@ -512,7 +429,7 @@ func UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int } //默认 运费模板只创建 固定运费模板 -func CreateFreightTemplate(storeCode int) (int64, error) { +func CreateFreightTemplate(storeCode, deliveryFeeDeductionSill int) (int64, error) { storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeCode, model.VendorIDDD, "") if err != nil { return 0, err @@ -527,24 +444,11 @@ func CreateFreightTemplate(storeCode int) (int64, error) { FixedAmount: 500, //固定运费 单位:分 }, } - if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { - param.Template.TemplateName += "满减包邮模板" - columns := []freightTemplate_create_request.ColumnsItem{ - { - IsOverFree: true, //是否包邮 - IsLimited: false, - OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 - }} - param.Columns = columns - } else { - param.Columns = nil - param.Template.TemplateName += "固定运费模板" - } //直辖市特殊处理 if HandleMunicipality(storeDetail.CityName) { param.Template.ProductCity = int64(storeDetail.ProvinceCode) - param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{ - { + param.Columns = []freightTemplate_create_request.ColumnsItem{{ + ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{{ Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), Children: []freightTemplate_create_request.ChildrenItem_4{ { @@ -559,27 +463,42 @@ func CreateFreightTemplate(storeCode int) (int64, error) { }, }, }}, + }}, } } else { param.Template.ProductCity = int64(storeDetail.CityCode) - param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{ - { - Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), - Children: []freightTemplate_create_request.ChildrenItem_4{ - { - Id: int64(storeDetail.CityCode), - Children: []freightTemplate_create_request.ChildrenItem_5{ - { - Id: int64(storeDetail.DistrictCode), - //Children: []freightTemplate_create_request.ChildrenItem{ - // {Id: 0}, - //}, + param.Columns = []freightTemplate_create_request.ColumnsItem{{ + ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{ + { + Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), + Children: []freightTemplate_create_request.ChildrenItem_4{ + { + Id: int64(storeDetail.CityCode), + Children: []freightTemplate_create_request.ChildrenItem_5{ + { + Id: int64(storeDetail.DistrictCode), + //Children: []freightTemplate_create_request.ChildrenItem{ + // {Id: 0}, + //}, + }, }, }, - }, - }}, + }}, + }, + }, } } + if deliveryFeeDeductionSill != 0 { + param.Template.TemplateName += "满减包邮模板" + param.Columns = []freightTemplate_create_request.ColumnsItem{{ + IsOverFree: true, //是否包邮 + IsLimited: false, + OverAmount: int64(deliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 + }} + } else { + //param.Columns = nil + param.Template.TemplateName += "固定运费模板" + } if resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param); err != nil { return 0, err } else { diff --git a/business/partner/purchase/tiktok_store/store_test.go b/business/partner/purchase/tiktok_store/store_test.go index 0c6890dd1..27953e913 100644 --- a/business/partner/purchase/tiktok_store/store_test.go +++ b/business/partner/purchase/tiktok_store/store_test.go @@ -7,7 +7,7 @@ import ( //创建运费模板 func TestCreateFreight(t *testing.T) { - data, err := CreateFreightTemplate(668504) + data, err := CreateFreightTemplate(668787) fmt.Println(data) fmt.Println(err) } diff --git a/business/partner/purchase/tiktok_store/warehouse.go b/business/partner/purchase/tiktok_store/warehouse.go index 078ab87b8..038c68ad9 100644 --- a/business/partner/purchase/tiktok_store/warehouse.go +++ b/business/partner/purchase/tiktok_store/warehouse.go @@ -254,7 +254,7 @@ func GetFence(appOrgCode string, outFenceID []string) ([]warehouse_getFences_res } //特殊处理 -func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeductionFee, minPrice int64, autoCall string) error { +func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeductionFee, deliveryFeeDeductionSill, minPrice int64, autoCall string) error { var ( db *dao.DaoDB errList = errlist.New() @@ -264,13 +264,14 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc } ) //1.运费模板 - bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) - if err != nil { - globals.SugarLogger.Debug("获取门店(%d) 绑定运费模板出错:", vendorStoreID, err) - //errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) - } - if bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误 - if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 { + //bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) + //if err != nil { + // globals.SugarLogger.Debug("获取门店(%d) 绑定运费模板出错:", vendorStoreID, err) + // //errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)) + //} + if true { + //if bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误 + if freightTemplateID, err := CreateFreightTemplate(int(storeID), int(deliveryFeeDeductionSill)); err != nil || freightTemplateID == 0 { errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) } else { //绑定 if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { diff --git a/controllers/cms_store.go b/controllers/cms_store.go index e50285675..592de07cb 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -2,6 +2,7 @@ package controllers import ( "errors" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxstore/common" @@ -1618,3 +1619,22 @@ func (c *StoreController) BindJxPrinter() { }) } + +// @Title 测试操作freight_template +// @Description 测试操作freight_template +// @Param token header string true "认证token" +// @Param storeID formData int true "京西门店id" +// @Param vendorStoreID formData string false "抖音平台id" +// @Param templateID formData int false "运费模板id" +// @Param warehouseID formData int false "仓库id" +// @Param fenceID formData string false "电子围栏id" +// @Param tradeLimitID formData int false "限售模板id" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /ReplaceInsertFreight [post] +func (c *StoreController) ReplaceInsertFreight() { + c.callReplaceInsertFreight(func(params *tStoreReplaceInsertFreightParams) (interface{}, string, error) { + err := cms.ReplaceInsertFreight(params.StoreID, params.TemplateID, params.WarehouseID, params.TradeLimitID, params.VendorStoreID, params.FenceID) + return nil, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 9758b5f5d..9e0dae3e7 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -3027,6 +3027,15 @@ func init() { MethodParams: param.Make(), Filters: nil, Params: nil}) + //测试用-ysq + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + web.ControllerComments{ + Method: "ReplaceInsertFreight", + Router: `/ReplaceInsertFreight`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], web.ControllerComments{