diff --git a/CoreCms.Net.Services/CheckIn/CoreCmsUserCheckInDetailsServices.cs b/CoreCms.Net.Services/CheckIn/CoreCmsUserCheckInDetailsServices.cs index 3d5886c8..4c974622 100644 --- a/CoreCms.Net.Services/CheckIn/CoreCmsUserCheckInDetailsServices.cs +++ b/CoreCms.Net.Services/CheckIn/CoreCmsUserCheckInDetailsServices.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; 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 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); - if (rule != null) - { - switch (rule.type) - { - case (int)GlobalEnumVars.CheckInCommonType.积分: - point += rule.num; - //储值积分 - await _userPointLogServices.SetPoint(entity.userId, rule.num, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign, "日历签到,获得" + rule.num + "积分"); - break; - case (int)GlobalEnumVars.CheckInCommonType.余额: - money += rule.num; - //储值余额 - await _userBalanceServices.Change(entity.userId, (int)GlobalEnumVars.UserBalanceSourceTypes.CheckIn, rule.num, id.ToString()); - break; - } - } + case (int)GlobalEnumVars.CheckInCommonType.积分: + point += rule.num; + //储值积分 + await _userPointLogServices.SetPoint(entity.userId, rule.num, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign, "日历签到,获得" + rule.num + "积分"); + 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.msg = "签到成功共获得" + point + "积分" + money + "余额";