93 lines
3.9 KiB
C#
93 lines
3.9 KiB
C#
/*******************************************************************************
|
||
* Copyright © 2020 HT.Cloud.Framework 版权所有
|
||
* Author: HT.Cloud
|
||
* Description: WaterCloud快速开发平台
|
||
* Website:
|
||
*********************************************************************************/
|
||
|
||
using SqlSugar;
|
||
using System.Threading.Tasks;
|
||
using HT.Cloud.Code;
|
||
using HT.Cloud.Domain.SystemOrganize;
|
||
|
||
namespace HT.Cloud.Service.SystemOrganize
|
||
{
|
||
public class UserLogOnService : BaseService<UserLogOnEntity>, IDenpendency
|
||
{
|
||
/// <summary>
|
||
/// 缓存操作类
|
||
/// </summary>
|
||
private string cacheKeyOperator = GlobalContext.SystemConfig.ProjectPrefix + "_operator_";// +登录者token
|
||
|
||
public UserLogOnService(ISqlSugarClient context) : base(context)
|
||
{
|
||
}
|
||
|
||
public async Task<UserLogOnEntity> GetForm(string keyValue)
|
||
{
|
||
return await repository.FindEntity(keyValue);
|
||
}
|
||
|
||
public async Task RevisePassword(string userPassword, string keyValue)
|
||
{
|
||
UserLogOnEntity entity = new UserLogOnEntity();
|
||
entity = repository.IQueryable().InSingle(keyValue);
|
||
if (entity == null)
|
||
{
|
||
entity = new UserLogOnEntity();
|
||
entity.F_Id = keyValue;
|
||
entity.F_UserId = keyValue;
|
||
entity.F_LogOnCount = 0;
|
||
entity.F_UserOnLine = false;
|
||
entity.F_UserSecretkey = Md5.md5(Utils.CreateNo(), 16).ToLower();
|
||
entity.F_UserPassword = Md5.md5(DESEncrypt.Encrypt(Md5.md5(userPassword, 32).ToLower(), entity.F_UserSecretkey).ToLower(), 32).ToLower();
|
||
await repository.Insert(entity);
|
||
}
|
||
else
|
||
{
|
||
//userLogOnEntity = new UserLogOnEntity();
|
||
//userLogOnEntity.F_Id = keyValue;
|
||
entity.F_UserSecretkey = Md5.md5(Utils.CreateNo(), 16).ToLower();
|
||
entity.F_UserPassword = Md5.md5(DESEncrypt.Encrypt(Md5.md5(userPassword, 32).ToLower(), entity.F_UserSecretkey).ToLower(), 32).ToLower();
|
||
await repository.Update(entity);
|
||
}
|
||
//缓存用户账户信息
|
||
var userLogOnEntity = await CacheHelper.GetAsync<OperatorUserInfo>(cacheKeyOperator + "info_" + keyValue);
|
||
if (userLogOnEntity == null)
|
||
{
|
||
userLogOnEntity = new OperatorUserInfo();
|
||
userLogOnEntity.F_UserPassword = entity.F_UserPassword;
|
||
userLogOnEntity.F_UserSecretkey = entity.F_UserSecretkey;
|
||
userLogOnEntity.F_AllowEndTime = entity.F_AllowEndTime;
|
||
userLogOnEntity.F_AllowStartTime = entity.F_AllowStartTime;
|
||
userLogOnEntity.F_AnswerQuestion = entity.F_AnswerQuestion;
|
||
userLogOnEntity.F_ChangePasswordDate = entity.F_ChangePasswordDate;
|
||
userLogOnEntity.F_FirstVisitTime = entity.F_FirstVisitTime;
|
||
userLogOnEntity.F_LastVisitTime = entity.F_LastVisitTime;
|
||
userLogOnEntity.F_LockEndDate = entity.F_LockEndDate;
|
||
userLogOnEntity.F_LockStartDate = entity.F_LockStartDate;
|
||
userLogOnEntity.F_LogOnCount = entity.F_LogOnCount;
|
||
userLogOnEntity.F_PreviousVisitTime = entity.F_PreviousVisitTime;
|
||
userLogOnEntity.F_Question = entity.F_Question;
|
||
userLogOnEntity.F_Theme = entity.F_Theme;
|
||
}
|
||
userLogOnEntity.F_UserPassword = entity.F_UserPassword;
|
||
userLogOnEntity.F_UserSecretkey = entity.F_UserSecretkey;
|
||
await CacheHelper.RemoveAsync(cacheKeyOperator + "info_" + keyValue);
|
||
await CacheHelper.SetAsync(cacheKeyOperator + "info_" + keyValue, userLogOnEntity);
|
||
}
|
||
|
||
public async Task ReviseSelfPassword(string userPassword, string keyValue)
|
||
{
|
||
UserLogOnEntity entity = new UserLogOnEntity();
|
||
entity = repository.IQueryable().InSingle(keyValue);
|
||
entity.F_UserSecretkey = Md5.md5(Utils.CreateNo(), 16).ToLower();
|
||
entity.F_UserPassword = Md5.md5(DESEncrypt.Encrypt(Md5.md5(userPassword, 32).ToLower(), entity.F_UserSecretkey).ToLower(), 32).ToLower();
|
||
await repository.Update(entity);
|
||
var userLogOnEntity = await CacheHelper.GetAsync<OperatorUserInfo>(cacheKeyOperator + "info_" + keyValue);
|
||
userLogOnEntity.F_UserPassword = entity.F_UserPassword;
|
||
userLogOnEntity.F_UserSecretkey = entity.F_UserSecretkey;
|
||
await CacheHelper.SetAsync(cacheKeyOperator + "info_" + keyValue, userLogOnEntity);
|
||
}
|
||
}
|
||
} |