添加登录

This commit is contained in:
橙子
2023-01-30 20:07:09 +08:00
parent aec0150a26
commit b7260ed982
277 changed files with 21789 additions and 31 deletions

View File

@@ -119,25 +119,34 @@
排序
</summary>
</member>
<member name="T:Yi.RBAC.Domain.Identity.Entities.SexEnum">
<member name="M:Yi.RBAC.Domain.Identity.Repositories.IUserRepository.GetUserAllInfoAsync(System.Int64)">
<summary>
性别
获取当前登录用户的所有信息
</summary>
<param name="userId"></param>
<returns></returns>
</member>
<member name="T:Yi.RBAC.Domain.Identity.UserManager">
<summary>
用户领域服务
</summary>
</member>
<member name="F:Yi.RBAC.Domain.Identity.Entities.SexEnum.Male">
<member name="M:Yi.RBAC.Domain.Identity.UserManager.LoginValidationAsync(System.String,System.String,System.Action{Yi.RBAC.Domain.Identity.Entities.UserEntity})">
<summary>
男性
登录效验
</summary>
<param name="userName"></param>
<param name="password"></param>
<param name="userAction"></param>
<returns></returns>
</member>
<member name="F:Yi.RBAC.Domain.Identity.Entities.SexEnum.Woman">
<member name="M:Yi.RBAC.Domain.Identity.UserManager.ExistAsync(System.String,System.Action{Yi.RBAC.Domain.Identity.Entities.UserEntity})">
<summary>
女性
</summary>
</member>
<member name="F:Yi.RBAC.Domain.Identity.Entities.SexEnum.Unknown">
<summary>
未知
判断账户合法存在
</summary>
<param name="userName"></param>
<param name="userAction"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using Yi.Framework.Data.Auditing;
using Yi.Framework.Data.Entities;
using Yi.Framework.Ddd.Entities;
using Yi.RBAC.Domain.Shared.Identity.EnumClasses;
namespace Yi.RBAC.Domain.Identity.Entities
{
@@ -129,23 +130,5 @@ namespace Yi.RBAC.Domain.Identity.Entities
public int OrderNum { get; set; } = 0;
}
/// <summary>
/// 性别
/// </summary>
public enum SexEnum
{
/// <summary>
/// 男性
/// </summary>
Male = 0,
/// <summary>
/// 女性
/// </summary>
Woman = 1,
/// <summary>
/// 未知
/// </summary>
Unknown = 2
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Ddd.Repositories;
using Yi.RBAC.Domain.Identity.Entities;
using Yi.RBAC.Domain.Shared.Identity.Dtos;
namespace Yi.RBAC.Domain.Identity.Repositories
{
public interface IUserRepository:IRepository<UserEntity>
{
/// <summary>
/// 获取当前登录用户的所有信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<UserRoleMenuDto> GetUserAllInfoAsync(long userId);
}
}

View File

@@ -3,6 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Core.Exceptions;
using Yi.Framework.Ddd.Repositories;
using Yi.RBAC.Domain.Identity.Entities;
using Yi.RBAC.Domain.Shared.Identity.ConstClasses;
namespace Yi.RBAC.Domain.Identity
{
@@ -13,5 +17,56 @@ namespace Yi.RBAC.Domain.Identity
[AppService]
public class UserManager
{
private readonly IRepository<UserEntity> _repository;
public UserManager(IRepository<UserEntity> repository)
{
_repository = repository;
}
/// <summary>
/// 登录效验
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <param name="userAction"></param>
/// <returns></returns>
public async Task LoginValidationAsync(string userName, string password, Action<UserEntity>? userAction = null)
{
var user = new UserEntity();
if (await ExistAsync(userName, o => user = o))
{
if (userAction is not null)
{
userAction.Invoke(user);
}
if (user.Password != MD5Helper.SHA2Encode(password, user.Salt))
{
return;
}
throw new UserFriendlyException(UserConst._错误);
}
throw new UserFriendlyException(UserConst._不存在);
}
/// <summary>
/// 判断账户合法存在
/// </summary>
/// <param name="userName"></param>
/// <param name="userAction"></param>
/// <returns></returns>
public async Task<bool> ExistAsync(string userName, Action<UserEntity>? userAction = null)
{
var user = await _repository.GetFirstAsync(u => u.UserName == userName && u.IsDeleted == false);
if (userAction is not null)
{
userAction.Invoke(user);
}
if (user == null)
{
return false;
}
return true;
}
}
}