diff --git a/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs b/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs
index 1d026e74..c8f99045 100644
--- a/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs
+++ b/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs
@@ -182,101 +182,100 @@ namespace CoreCms.Net.Services
///
public async Task Sign(int userId)
{
- using (var container = _serviceProvider.CreateScope())
+ using var container = _serviceProvider.CreateScope();
+ var settingServices = container.ServiceProvider.GetService();
+ var jm = new WebApiCallBack();
+
+ var res = await IsSign(userId);
+ if (res.status)
{
- var _settingServices = container.ServiceProvider.GetService();
- var jm = new WebApiCallBack();
+ jm.msg = "今天已经签到,无需重复签到";
+ return jm;
+ }
+ //获取店铺签到积分设置
+ var allConfigs = await settingServices.GetConfigDictionaries();
- var res = await IsSign(userId);
- if (res.status)
+ var signPointType = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignPointType).ObjectToInt();
+
+ //判断是固定积分计算还是随机积分计算
+ var point = 0;
+ if (signPointType == (int)GlobalEnumVars.UserPointSignTypes.RandomPoint)
+ {
+ //随机计算
+ //获取最小随机值
+ var signRandomMin = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignRandomMin).ObjectToInt(1);
+ //获取最大随机值
+ var signRandomMax = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignRandomMax).ObjectToInt(10);
+ Random ran = new Random();
+ point = ran.Next(signRandomMin, signRandomMax);
+ }
+ else
+ {
+ //固定计算
+ //首次签到积分
+ var firstSignPoint = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.FirstSignPoint).ObjectToInt(1);
+ //连续签到追加
+ var continuitySignAdditional = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ContinuitySignAdditional).ObjectToInt(1);
+ //签到最多积分
+ var signMostPoint = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignMostPoint).ObjectToInt(1);
+
+ //最大连续签到天数
+ var maxContinuityDay = 0;
+
+ //获取连续签到天数
+ if (continuitySignAdditional > 0)
{
- jm.msg = "今天已经签到,无需重复签到";
- }
- //获取店铺签到积分设置
- var allConfigs = await _settingServices.GetConfigDictionaries();
-
- var signPointType = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignPointType).ObjectToInt();
-
- //判断是固定积分计算还是随机积分计算
- var point = 0;
- if (signPointType == (int)GlobalEnumVars.UserPointSignTypes.RandomPoint)
- {
- //随机计算
- //获取最小随机值
- var signRandomMin = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignRandomMin).ObjectToInt(1);
- //获取最大随机值
- var signRandomMax = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignRandomMax).ObjectToInt(10);
- Random ran = new Random();
- point = ran.Next(signRandomMin, signRandomMax);
+ maxContinuityDay = (signMostPoint - firstSignPoint) / continuitySignAdditional;
}
else
{
- //固定计算
- //首次签到积分
- var firstSignPoint = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.FirstSignPoint).ObjectToInt(1);
- //连续签到追加
- var continuitySignAdditional = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.ContinuitySignAdditional).ObjectToInt(1);
- //签到最多积分
- var signMostPoint = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SignMostPoint).ObjectToInt(1);
+ //连续追加0的话说明每天签到积分都一样多,那么最大连续签到天数就是1天
+ maxContinuityDay = 1;
+ }
- //最大连续签到天数
- var maxContinuityDay = 0;
+ var day = DateTime.Now.AddDays(-maxContinuityDay);
- //获取连续签到天数
- if (continuitySignAdditional > 0)
+
+ var logs = await _dal.QueryListByClauseAsync(p =>
+ p.userId == userId && p.type == (int)(int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign &&
+ p.createTime > day);
+
+ var newRes = new List();
+ if (logs != null && logs.Any())
+ {
+ foreach (var item in logs)
{
- maxContinuityDay = (signMostPoint - firstSignPoint) / continuitySignAdditional;
+ var dtStr = item.createTime.ToString("yyyy-MM-dd");
+ if (!newRes.Contains(dtStr))
+ {
+ newRes.Add(dtStr);
+ }
+ }
+ }
+
+ var intDay = 0; //连续签到天数
+ for (int i = 1; i <= maxContinuityDay; i++)
+ {
+ var now = DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd"); ;
+ if (newRes.Contains(now))
+ {
+ intDay++;
}
else
{
- //连续追加0的话说明每天签到积分都一样多,那么最大连续签到天数就是1天
- maxContinuityDay = 1;
+ break;
}
-
- var day = DateTime.Now.AddDays(-maxContinuityDay);
-
-
- var logs = await _dal.QueryListByClauseAsync(p =>
- p.userId == userId && p.type == (int)(int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign &&
- p.createTime > day);
-
- var newRes = new List();
- if (logs != null && logs.Any())
- {
- foreach (var item in logs)
- {
- var dtStr = item.createTime.ToString("yyyy-MM-dd");
- if (!newRes.Contains(dtStr))
- {
- newRes.Add(dtStr);
- }
- }
- }
-
- var intDay = 0; //连续签到天数
- for (int i = 1; i <= maxContinuityDay; i++)
- {
- var now = DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd"); ;
- if (newRes.Contains(now))
- {
- intDay++;
- }
- else
- {
- break;
- }
- }
- //积分
- point = firstSignPoint + continuitySignAdditional * intDay;
- point = point > signMostPoint ? signMostPoint : point;
}
- jm.data = point;
- //插入数据库
- var result = await SetPoint(userId, point, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign, "积分签到,获得" + point + "积分");
- jm.msg = result.msg;
- jm.status = result.status;
- return jm;
+ //积分
+ point = firstSignPoint + continuitySignAdditional * intDay;
+ point = point > signMostPoint ? signMostPoint : point;
}
+ jm.data = point;
+ //插入数据库
+ var result = await SetPoint(userId, point, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeSign, "积分签到,获得" + point + "积分");
+ jm.msg = result.msg;
+ jm.status = result.status;
+ return jm;
}
}
}
diff --git a/CoreCms.Net.Web.WebApi/Controllers/WeChatTransactionComponentController.cs b/CoreCms.Net.Web.WebApi/Controllers/WeChatTransactionComponentController.cs
deleted file mode 100644
index 84b3db15..00000000
--- a/CoreCms.Net.Web.WebApi/Controllers/WeChatTransactionComponentController.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using System.Threading.Tasks;
-using CoreCms.Net.Caching.AccressToken;
-using CoreCms.Net.Model.FromBody;
-using CoreCms.Net.Model.ViewModels.UI;
-using CoreCms.Net.WeChat.Service.HttpClients;
-using Microsoft.AspNetCore.Authorization;
-using SKIT.FlurlHttpClient.Wechat.Api;
-using SKIT.FlurlHttpClient.Wechat.Api.Models;
-
-namespace CoreCms.Net.Web.WebApi.Controllers
-{
- ///
- /// 微信小程序自定义交易组件
- ///
- [Route("api/[controller]/[action]")]
- [ApiController]
- public class WeChatTransactionComponentController : ControllerBase
- {
- private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
-
- ///
- ///
- ///
- ///
- public WeChatTransactionComponentController(IWeChatApiHttpClientFactory weChatApiHttpClientFactory)
- {
- _weChatApiHttpClientFactory = weChatApiHttpClientFactory;
- }
-
-
- #region 获取用户是否订阅
- ///
- /// 获取用户是否订阅
- ///
- ///
- [HttpPost]
- [Authorize]
- public async Task CheckScene(FMIntId entity)
- {
- var jm = new WebApiCallBack();
-
-
- //获取小程序认证
- var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
- var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
-
- var sceneRequest = new ShopSceneCheckRequest();
- sceneRequest.AccessToken = accessToken;
- sceneRequest.Scene = entity.id;
-
- var sceneResponse = await client.ExecuteShopSceneCheckAsync(sceneRequest);
-
- jm.status = true;
- jm.data = sceneResponse;
-
-
- return jm;
- }
- #endregion
-
-
-
- }
-}