Files
HTCloud/HT.Cloud.Service/SystemOrganize/UserLogOnService.cs
2023-03-03 16:07:50 +08:00

93 lines
3.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*******************************************************************************
* 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);
}
}
}