# 2022-05-07

### 1.4.4开源社区版:
无
### 0.3.9 专业版:
【新增】增加[coreshop-advert]广告组件,对标后台管理功能的广告管理,前端可直接使用代码<coreshop-advert codes="广告位code"></coreshop-advert>来实现在前端任何地方引用广告组件。
【新增】商城栏目页面增加广告组件使用示例。
【新增】用户表增加【是否开启自动升级】【发展用户数量】【订单消费金额】【充值总金额】【权重优先级】字段,并完善用户升级队列处理逻辑。
【调整】文章管理的修改和编辑弹窗模式,修改为单页面模式,解决弹窗情况下编辑器某些按钮因为z-index导致的被阻挡显示的问题。
【优化】优化首页组件的样式,将一些常见方法进行统一封装到混合器里面。
This commit is contained in:
大灰灰
2022-05-08 23:42:22 +08:00
parent b523a3141a
commit 6655f670e0
14 changed files with 423 additions and 61 deletions

View File

@@ -10,6 +10,7 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.IServices;
@@ -32,14 +33,16 @@ namespace CoreCms.Net.RedisMQ.Subscribe
private readonly ICoreCmsOrderServices _orderServices;
private readonly ICoreCmsBillRefundServices _billRefundServices;
private readonly ICoreCmsUserGradeServices _userGradeServices;
private readonly ICoreCmsBillPaymentsServices _billPaymentsServices;
public UserSubscribe(ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillRefundServices billRefundServices, ICoreCmsUserGradeServices userGradeServices)
public UserSubscribe(ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillRefundServices billRefundServices, ICoreCmsUserGradeServices userGradeServices, ICoreCmsBillPaymentsServices billPaymentsServices)
{
_userServices = userServices;
_orderServices = orderServices;
_billRefundServices = billRefundServices;
_userGradeServices = userGradeServices;
_billPaymentsServices = billPaymentsServices;
}
/// <summary>
@@ -60,7 +63,7 @@ namespace CoreCms.Net.RedisMQ.Subscribe
return;
}
var userInfo = await _userServices.QueryPageAsync(p => p.id == orderModel.userId);
var userInfo = await _userServices.QueryByClauseAsync(p => p.id == orderModel.userId);
if (userInfo == null)
{
NLogUtil.WriteAll(NLog.LogLevel.Info, LogType.RedisMessageQueue, "订单完成-用户升级处理", "用户数据获取失败");
@@ -77,17 +80,33 @@ namespace CoreCms.Net.RedisMQ.Subscribe
p => p.type == (int)GlobalEnumVars.BillRefundType.Order && p.userId == orderModel.userId &&
p.status != (int)GlobalEnumVars.BillRefundStatus.STATUS_REFUND, p => p.money);
var money = payedMoney - refundMoney;
//实际消费金额
var expenditureMoney = payedMoney - refundMoney;
//充值金额
var rechargeAmount = await _billPaymentsServices.GetSumAsync(
p => p.type == (int)GlobalEnumVars.BillPaymentsType.Recharge &&
p.status == (int)GlobalEnumVars.BillPaymentsStatus.Payed, p => p.money);
//发展用户
var developNum = await _userServices.GetCountAsync(p => p.parentId == userInfo.id);
developNum += await _userServices.QueryChildCountAsync(userInfo.id, 2);
//取所有用户等级信息
var userGradeModel = await _userGradeServices.QueryListByClauseAsync(p => p.isOpenUpgrade == true, p => p.prioritySortId, OrderByType.Asc);
//获取用户默认等级
var defaultModel = userGradeModel.Find(p => p.id == userInfo.grade);
var userGradeModel = await _userGradeServices.QueryListByClauseAsync(p => p.id > 0, p => p.id, OrderByType.Asc);
//var id = 0;
foreach (var item in userGradeModel)
//判断是否符合升级条件
var userGradeId = 0;
foreach (var item in userGradeModel.TakeWhile(item => defaultModel == null || defaultModel.prioritySortId > item.prioritySortId).Where(item => developNum >= item.developNum && expenditureMoney >= item.expenditureMoney && rechargeAmount >= item.rechargeAmount))
{
userGradeId = item.id;
}
if (userGradeId > 0)
{
await _userServices.UpdateAsync(p => new CoreCmsUser() {grade = userGradeId}, p => p.id == userInfo.id);
}
NLogUtil.WriteAll(NLog.LogLevel.Info, LogType.RedisMessageQueue, "订单完成-用户升级处理", msg);