# 2022-02-24

### 1.3.7 开源社区版:
无
### 0.2.4 会员专业版:
【新增】数据库sku表【CoreCmsProducts】增加"积分可抵扣金额"【pointsDeduction】字段
【新增】商品sku新增最高抵扣金额功能,可通过积分进行价格抵扣,实现单品使用【积分+价格】的购买模式。与订单积分折扣并存。
【新增】积分新增积分模式功能,分为全局计算和单品计算,【全局计算】是指直接对订单按照使用比例进行计算,【单品计算】是指根据单个商品下sku独立设置的最高可抵扣金额进行计算。
【新增】积分新增显示积分组合兑换价功能,勾选显示,将在商品详情,购物车等界面显示积分加价格的效果。
【新增】积分新增显示名称功能,前端可改名积分显示名称为自定义,如:金豆,衡豆等。
【新增】商品列表页面、购物车界面、下单界面、商品详情界面新增积分新增是否显示组合价功能,如果勾选,将显示【1000积分+25元换购】的内容。
【优化】当添加视频后,默认采用商品封面图作为视频底图,防止视频大小差异出现黑边或预加载中黑屏的问题。
【优化】商品列表展示列表去除padding留白效果。
【优化】优化form表单redio和checkBox选项分行显示的问题。
【修复】修复拼团分享页面倒计时识别失败的问题,修复拼团分享页面分享按钮点击失败的问题。#I4QWDH #I4QWFC
This commit is contained in:
JianWeie
2022-02-24 02:16:41 +08:00
parent 289c3fc5a1
commit 53b16cfeab
31 changed files with 605 additions and 207 deletions

View File

@@ -780,8 +780,8 @@ namespace CoreCms.Net.Services
var jm = new WebApiCallBack() { status = true };
if (point != 0)
{
var getUserPointDto = await _userServices.GetUserPoint(userId, 0);
if (getUserPointDto.point < point)
var user = await _userServices.QueryByClauseAsync(p => p.id == userId);
if (user.point < point)
{
jm.status = false;
jm.msg = "积分不足,无法使用积分";
@@ -789,23 +789,45 @@ namespace CoreCms.Net.Services
}
//判断积分值多少钱
//计算可用积分
var allConfigs = await _settingServices.GetConfigDictionaries();
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; //积分可以抵扣的钱
if (maxPointDeductedMoney < pointDeductedMoney)
var pointExchangeModel = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointExchangeModel).ObjectToInt(); //判断是全局模式还是单品模式
if (pointExchangeModel == 1)
{
jm.status = false;
jm.msg = "积分超过订单可使用的积分数量";
return jm;
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; //积分可以抵扣的钱
if (maxPointDeductedMoney < pointDeductedMoney)
{
jm.status = false;
jm.msg = "积分超过订单可使用的积分数量";
return jm;
}
cartDto.point = point;
cartDto.pointExchangeMoney = pointDeductedMoney;
cartDto.amount -= pointDeductedMoney;
}
else
{
//可抵扣金额
decimal money = 0;
foreach (var item in cartDto.list)
{
money += item.nums * item.products.pointsDeduction;
}
//计算抵扣这么多金额需要多少积分。
//订单积分折现比例(多少积分可以折现1块钱)
var pointDiscountedProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointDiscountedProportion).ObjectToInt(100);
//计算需要多少积分
var needsPoint = money * pointDiscountedProportion;
cartDto.point = point;
cartDto.pointExchangeMoney = Convert.ToInt32(money);
cartDto.amount -= Convert.ToInt32(money);
}
cartDto.point = point;
cartDto.pointExchangeMoney = pointDeductedMoney;
cartDto.amount -= pointDeductedMoney;
}
jm.data = cartDto;
return jm;