【修复】修复日历签到进行结果集处理未获取到details的问题。

This commit is contained in:
大灰灰
2022-11-21 22:21:56 +08:00
parent 7d239ebdac
commit 1d56e3c92e

View File

@@ -10,6 +10,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using CoreCms.Net.Configuration; using CoreCms.Net.Configuration;
@@ -180,37 +181,29 @@ namespace CoreCms.Net.Services
//判断连续签到次数是否满足 //判断连续签到次数是否满足
var continuousCheckInRules = await _continuousCheckInRulesServices.QueryAsync(true, true); var continuousCheckInRules = await _continuousCheckInRulesServices.GetDataWidthChild();
//获取用户数据 //获取用户数据
var user = await _userServices.QueryByIdAsync(entity.userId); var user = await _userServices.QueryByIdAsync(entity.userId);
//获取用户当前已经连续签到的次数 //获取用户当前已经连续签到的次数
var userContinuousCheckInNum = userCheckIn.continuousCheckInCount; var userContinuousCheckInNum = userCheckIn.continuousCheckInCount;
//遍历处理结果 //遍历处理结果
async void Action1(CoreCmsContinuousCheckInRules p) foreach (var rule in from p in continuousCheckInRules where p.days == userContinuousCheckInNum select p.details.Find(o => o.userGradeId == user.grade) into rule where rule != null select rule)
{ {
if (p.days == userContinuousCheckInNum) switch (rule.type)
{ {
var rule = p.details.Find(o => o.userGradeId == user.grade); case (int)GlobalEnumVars.CheckInCommonType.:
if (rule != null) point += rule.num;
{ //储值积分
switch (rule.type) await _userPointLogServices.SetPoint(entity.userId, rule.num, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign, "日历签到,获得" + rule.num + "积分");
{ break;
case (int)GlobalEnumVars.CheckInCommonType.: case (int)GlobalEnumVars.CheckInCommonType.:
point += rule.num; money += rule.num;
//储值积分 //储值余额
await _userPointLogServices.SetPoint(entity.userId, rule.num, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign, "日历签到,获得" + rule.num + "积分"); await _userBalanceServices.Change(entity.userId, (int)GlobalEnumVars.UserBalanceSourceTypes.CheckIn, rule.num, id.ToString());
break; break;
case (int)GlobalEnumVars.CheckInCommonType.:
money += rule.num;
//储值余额
await _userBalanceServices.Change(entity.userId, (int)GlobalEnumVars.UserBalanceSourceTypes.CheckIn, rule.num, id.ToString());
break;
}
}
} }
} }
continuousCheckInRules.ForEach(Action1);
jm.code = 0; jm.code = 0;
jm.msg = "签到成功共获得" + point + "积分" + money + "余额"; jm.msg = "签到成功共获得" + point + "积分" + money + "余额";