【新增】同城配送运费增加超过20公里自定义每公里金额,增加订单超过多少金额免运费设置。

This commit is contained in:
大灰灰
2022-11-29 18:13:37 +08:00
parent 9e5232762a
commit f396d9ff6d
7 changed files with 60 additions and 37 deletions

View File

@@ -721,18 +721,30 @@ namespace CoreCms.Net.Services
var intraCityServiceBy10Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy10KM).ObjectToDecimal(0);
var intraCityServiceBy15Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy15KM).ObjectToDecimal(0);
var intraCityServiceBy20Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceBy20KM).ObjectToDecimal(0);
var intraCityServiceByExceed20Km = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceByExceed20KM).ObjectToDecimal(0);
cartDto.costFreight = result switch
if (result is >= 0 and <= 2)
cartDto.costFreight = intraCityServiceBy2Km;
else if (result is > 2 and <= 5)
cartDto.costFreight = intraCityServiceBy5Km;
else if (result is > 5 and <= 10)
cartDto.costFreight = intraCityServiceBy10Km;
else if (result is > 10 and <= 15)
cartDto.costFreight = intraCityServiceBy15Km;
else if (result is > 15 and <= 20)
cartDto.costFreight = intraCityServiceBy20Km;
else if (result > 20)
cartDto.costFreight = Math.Round(intraCityServiceByExceed20Km * (decimal) result).ObjectToDecimal();
else if (result < 0)
cartDto.costFreight = intraCityServiceBy2Km;
else
cartDto.costFreight = cartDto.costFreight;
var intraCityServiceFreeCredit = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.IntraCityServiceFreeCredit).ObjectToDecimal(0);
if (intraCityServiceFreeCredit > 0 && cartDto.amount > intraCityServiceFreeCredit)
{
>= 0 and <= 2 => intraCityServiceBy2Km,
> 2 and <= 5 => intraCityServiceBy5Km,
> 5 and <= 10 => intraCityServiceBy10Km,
> 10 and <= 15 => intraCityServiceBy15Km,
> 15 and <= 20 => intraCityServiceBy20Km,
> 20 => Math.Round(result * 2).ObjectToDecimal(),
< 0 => intraCityServiceBy2Km,
_ => cartDto.costFreight
};
cartDto.costFreight = 0;
}
cartDto.amount = Math.Round(cartDto.amount + cartDto.costFreight, 2);
}
return true;
@@ -808,7 +820,7 @@ namespace CoreCms.Net.Services
//最多可以抵扣的金额
var maxPointDeductedMoney = Math.Round(cartDto.amount * proportion, 4);
//订单积分折现比例(多少积分可以折现1块钱)
var pointDiscountedProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointDiscountedProportion).ObjectToDecimal(100); //积分兑换比例
var pointDeductedMoney = Math.Round(Convert.ToDecimal(point) / pointDiscountedProportion, 4); ; //积分可以抵扣的钱