mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-02-04 22:49:49 +08:00
【优化】优化使用部分积分加金额购买,申请售后回退积分的处理,增加精度到4位,减少误差。
This commit is contained in:
@@ -798,13 +798,20 @@ namespace CoreCms.Net.Services
|
||||
//计算可用积分
|
||||
var allConfigs = await _settingServices.GetConfigDictionaries();
|
||||
|
||||
var pointExchangeModel = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointExchangeModel).ObjectToInt(); //判断是全局模式还是单品模式
|
||||
//判断是全局模式还是单品模式
|
||||
var pointExchangeModel = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointExchangeModel).ObjectToInt();
|
||||
if (pointExchangeModel == 1)
|
||||
{
|
||||
var ordersPointProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.OrdersPointProportion).ObjectToInt(10);//订单积分使用比例
|
||||
var maxPointDeductedMoney = Math.Round(cartDto.amount * ordersPointProportion / 100, 2); //最大积分抵扣的钱
|
||||
var pointDiscountedProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointDiscountedProportion).ObjectToInt(100); //积分兑换比例
|
||||
var pointDeductedMoney = point / pointDiscountedProportion; //积分可以抵扣的钱
|
||||
//计算可用积分//订单积分使用比例
|
||||
var ordersPointProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.OrdersPointProportion).ObjectToDecimal(10);
|
||||
var proportion = Math.Round(ordersPointProportion / 100, 4);
|
||||
|
||||
//最多可以抵扣的金额
|
||||
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); ; //积分可以抵扣的钱
|
||||
|
||||
if (maxPointDeductedMoney < pointDeductedMoney)
|
||||
{
|
||||
@@ -832,8 +839,8 @@ namespace CoreCms.Net.Services
|
||||
var needsPoint = money * pointDiscountedProportion;
|
||||
|
||||
cartDto.point = point;
|
||||
cartDto.pointExchangeMoney = Convert.ToInt32(money);
|
||||
cartDto.amount -= Convert.ToInt32(money);
|
||||
cartDto.pointExchangeMoney = money;
|
||||
cartDto.amount -= money;
|
||||
}
|
||||
}
|
||||
jm.data = cartDto;
|
||||
|
||||
@@ -195,17 +195,20 @@ namespace CoreCms.Net.Services
|
||||
if (orderMoney != 0)
|
||||
{
|
||||
//计算可用积分//订单积分使用比例
|
||||
var ordersPointProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.OrdersPointProportion).ObjectToInt(10);
|
||||
var ordersPointProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.OrdersPointProportion).ObjectToDecimal(10);
|
||||
var proportion = Math.Round(ordersPointProportion / 100, 4);
|
||||
//最多可以抵扣的金额
|
||||
var maxPointDeductedMoney = Math.Round((orderMoney * ordersPointProportion) / 100, 2);
|
||||
var maxPointDeductedMoney = Math.Round(orderMoney * proportion, 4);
|
||||
|
||||
//订单积分折现比例(多少积分可以折现1块钱)
|
||||
var pointDiscountedProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointDiscountedProportion).ObjectToInt(100);
|
||||
var pointDiscountedProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointDiscountedProportion).ObjectToDecimal(100);
|
||||
//计算需要多少积分
|
||||
var needsPoint = maxPointDeductedMoney * pointDiscountedProportion;
|
||||
//确定是否有那么多积分去抵扣比例计算出的能抵扣的钱
|
||||
dto.availablePoint = Convert.ToInt32(needsPoint > user.point ? user.point : needsPoint);
|
||||
dto.pointExchangeMoney = dto.availablePoint / pointDiscountedProportion;
|
||||
var availablePoint = needsPoint > user.point ? user.point : needsPoint;
|
||||
dto.availablePoint = Convert.ToInt32(availablePoint);
|
||||
dto.pointExchangeMoney = Math.Round(availablePoint / pointDiscountedProportion, 4);
|
||||
//dto.pointExchangeMoney = dto.availablePoint / pointDiscountedProportion;
|
||||
}
|
||||
}
|
||||
else if (pointExchangeModel == 2)
|
||||
@@ -243,9 +246,10 @@ namespace CoreCms.Net.Services
|
||||
var needsPoint = money * pointDiscountedProportion;
|
||||
|
||||
//确定是否有那么多积分去抵扣比例计算出的能抵扣的钱
|
||||
dto.availablePoint = Convert.ToInt32(needsPoint > user.point ? 0 : needsPoint);
|
||||
var availablePoint = needsPoint > user.point ? 0 : needsPoint;
|
||||
dto.availablePoint = Convert.ToInt32(availablePoint);
|
||||
|
||||
dto.pointExchangeMoney = Convert.ToInt32(user.point > needsPoint ? money : 0);
|
||||
dto.pointExchangeMoney = user.point > needsPoint ? money : 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user