diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 26fcbb656..b27a47fb6 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -169,7 +169,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee return fmt.Errorf("门店%d 未审核通过,请通过后再进行绑定", storeID) } //1.运费模板 - if bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID); err != nil || bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误 + bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) + if err != nil || bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误 //创建 if freightTemplateID, err := CreateFreightTemplate(int(storeID), int(deliveryFeeDeductionSill)); err != nil || freightTemplateID == 0 { errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) @@ -181,7 +182,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee } } } else { - if err := UpdateFreightTemplate(int(storeID)); err != nil { + if err := UpdateFreightTemplate(int(storeID), bindFreightIDs); err != nil { globals.SugarLogger.Debug("更新运费模板失败:", err) errList.AddErr(fmt.Errorf("更新运费模板失败:%v", err)) } @@ -437,7 +438,7 @@ func UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int return err } -//默认 运费模板只创建 固定运费模板 +// CreateFreightTemplate 默认 运费模板只创建 固定运费模板 func CreateFreightTemplate(storeCode, deliveryFeeDeductionSill int) (int64, error) { storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeCode, model.VendorIDDD, "") if err != nil { @@ -505,62 +506,58 @@ func CreateFreightTemplate(storeCode, deliveryFeeDeductionSill int) (int64, erro 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 { + + resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param) + if err != nil { return 0, err - } else { - return resp.TemplateId, nil } + return resp.TemplateId, nil } -// /freightTemplate/update 修改运费模板 -func UpdateFreightTemplate(storeCode int) error { +// UpdateFreightTemplate 修改运费模板 +func UpdateFreightTemplate(storeCode int, templateId int64) error { //获取本地门店信息 storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeCode, model.VendorIDDD, "") if err != nil { return errors.New(fmt.Sprintf("获取本地门店信息失败:%v", err)) } + //获取绑定的运费模板信息 - bindTemplate, err := GetStoreFreight(storeDetail.VendorOrgCode, utils.Str2Int64(storeDetail.VendorStoreID)) - if err != nil || bindTemplate == 0 { - return errors.New(fmt.Sprintf("获取门店绑定运费模板失败:%v,请先创建运费模板", err)) + param := &freightTemplate_update_request.FreightTemplateUpdateParam{ + Template: &freightTemplate_update_request.Template{ + Id: templateId, + TemplateName: utils.Int2Str(storeCode) + "的", + ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), + CalculateType: tiktok_api.CalculateTypeNum, + TransferType: tiktok_api.TransferTypeExpress, + RuleType: tiktok_api.RuleTypeFlatShipping, + FixedAmount: 500, //固定运费 单位:分 + }, + } + if storeDetail.CityName == tiktok_api.MunicipalityBeiJin || storeDetail.CityName == tiktok_api.MunicipalityShangHai || storeDetail.CityName == tiktok_api.MunicipalityTianJin || storeDetail.CityName == tiktok_api.MunicipalityChongQing { + param.Template.ProductCity = int64(storeDetail.ProvinceCode) } else { - param := &freightTemplate_update_request.FreightTemplateUpdateParam{ - Template: &freightTemplate_update_request.Template{ - Id: bindTemplate, - TemplateName: utils.Int2Str(storeCode) + "的", - ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), - CalculateType: tiktok_api.CalculateTypeNum, - TransferType: tiktok_api.TransferTypeExpress, - RuleType: tiktok_api.RuleTypeFlatShipping, - FixedAmount: 500, //固定运费 单位:分 - }, - } - if storeDetail.CityName == tiktok_api.MunicipalityBeiJin || storeDetail.CityName == tiktok_api.MunicipalityShangHai || storeDetail.CityName == tiktok_api.MunicipalityTianJin || storeDetail.CityName == tiktok_api.MunicipalityChongQing { - param.Template.ProductCity = int64(storeDetail.ProvinceCode) - } else { - param.Template.ProductCity = int64(storeDetail.CityCode) - } - if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { - param.Template.TemplateName += "满减包邮模板" - columns := []freightTemplate_update_request.ColumnsItem{ - { - IsOverFree: true, //是否包邮 - IsDefault: 0, - IsLimited: false, - OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 - }} - param.Columns = columns - } else { - param.Columns = nil - param.Template.TemplateName += "固定运费模板" - } - _, err = getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateUpdate(param) - if err != nil { - return err - } + param.Template.ProductCity = int64(storeDetail.CityCode) + } + if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { + param.Template.TemplateName += "满减包邮模板" + columns := []freightTemplate_update_request.ColumnsItem{ + { + IsOverFree: true, //是否包邮 + IsDefault: 0, + IsLimited: false, + OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 + }} + param.Columns = columns + } else { + param.Columns = nil + param.Template.TemplateName += "固定运费模板" + } + _, err = getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateUpdate(param) + if err != nil { + return err } return nil } diff --git a/business/partner/purchase/tiktok_store/warehouse.go b/business/partner/purchase/tiktok_store/warehouse.go index 95a107d3d..390bdec73 100644 --- a/business/partner/purchase/tiktok_store/warehouse.go +++ b/business/partner/purchase/tiktok_store/warehouse.go @@ -272,10 +272,12 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc 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), int(deliveryFeeDeductionSill)); err != nil || freightTemplateID == 0 { + + //(1)未查询到绑定信息,不算错误 + if bindFreightIDs == 0 { + freightTemplateID, err := CreateFreightTemplate(int(storeID), int(deliveryFeeDeductionSill)) + if err != nil || freightTemplateID == 0 { errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) } else { //绑定 if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { @@ -285,15 +287,17 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc } } } else { - if err := UpdateFreightTemplate(int(storeID)); err != nil { + if err := UpdateFreightTemplate(int(storeID), bindFreightIDs); err != nil { globals.SugarLogger.Debug("更新运费模板失败:", err) errList.AddErr(fmt.Errorf("更新运费模板失败:%v", err)) } } + //2.设置门店打包费 默认为0 if err := SetStorePackageFee(vendorOrgCode, vendorStoreID, deliveryFeeDeductionFee); err != nil { errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) } + //3.设置门店起送价 默认为0 if bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID); err != nil { globals.SugarLogger.Debugf("获取门店限售模板失败:%v", err) @@ -322,20 +326,13 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc errList.AddErr(fmt.Errorf("关闭门店自动运力失败:%v", err)) } } + //多次同步数据库,兜底处理 - if err := dao.ReplaceInsertFreight(FreightTemplate); err != nil { + if err = dao.ReplaceInsertFreight(FreightTemplate); err != nil { if err1 := dao.InsertItemFreight(FreightTemplate); err1 != nil { globals.SugarLogger.Debug("同步数据库错误信息:%v", err1) } } - //if err := dao.CreateEntity(db, FreightTemplate); dao.IsDuplicateError(err) || err != nil { - // _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID", "TradeLimitID") - // if err1 != nil { - // globals.SugarLogger.Debugf("更新起送价限售模板,更新进数据库错误信息:%v", err1) - // } else { - // globals.SugarLogger.Debugf("更新起送价限售模板,创建进数据库错误信息:%v", err) - // } - //} endErr := errList.GetErrListAsOne() return endErr }