This commit is contained in:
邹宗楠
2024-03-18 13:34:48 +08:00
parent efe5ddc471
commit 82fe99a108
2 changed files with 53 additions and 59 deletions

View File

@@ -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
}

View File

@@ -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
}