Files
IM_NEW/User.Domain/IIdRepository.cs
2026-05-09 17:06:30 +08:00

116 lines
3.9 KiB
C#

using IdentityService.Domain.Entities;
using IM.Commons;
using Microsoft.AspNetCore.Identity;
namespace IdentityService.Domain
{
public interface IIdRepository
{
/// <summary>
/// 通过用户名查找
/// </summary>
/// <param name="userName">用户名</param>
/// <returns></returns>
Task<User?> FindByUserNameAsync(string userName);
/// <summary>
/// 通过邮箱地址查找
/// </summary>
/// <param name="Email">邮箱地址</param>
/// <returns></returns>
Task<User?> FindByEmailAsync(string Email);
/// <summary>
/// 通过ID查询
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<User?> FindByIdAsync(Guid id);
/// <summary>
/// 通过手机号查找
/// </summary>
/// <param name="phone"></param>
/// <returns></returns>
Task<User?> FindByPhoneAsync(string phone);
/// <summary>
/// 创建用户
/// </summary>
/// <param name="user"></param>
/// <param name="password"></param>
/// <returns></returns>
Task<IdentityResult> CreateAsync(User user, string password);
/// <summary>
/// 修改密码
/// </summary>
/// <param name="userId"></param>
/// <param name="password">原密码</param>
/// <returns></returns>
Task<IdentityResult> ChangePasswordAsync(User user, string password);
/// <summary>
/// 记录一次失败登录
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<IdentityResult> AccessFailedAsync(User user);
/// <summary>
/// 获取角色
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<IList<string>> GetRolesAsync(User user);
/// <summary>
/// 添加角色
/// </summary>
/// <param name="userId"></param>
/// <param name="role"></param>
/// <returns></returns>
Task<IdentityResult> AddRoleAsync(User user, string role);
/// <summary>
/// 为登录检查用户名密码
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <param name="lockoutOnFailure">是否记录登录失败</param>
/// <returns></returns>
Task<SignInResult> CheckForSignInAsync(User user, string password, bool lockoutOnFailure);
/// <summary>
/// 删除用户
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<IdentityResult> RemoveAsync(User user);
/// <summary>
/// 重置密码
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<(IdentityResult, User?, string password)> ResetPasswordAsync(User user);
/// <summary>
/// 检查用户名
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
Task<SignInResult> CheckUsernameAsync(string username);
/// <summary>
/// 检查邮箱
/// </summary>
/// <param name="email"></param>
/// <returns></returns>
Task<SignInResult> CheckEmailAsync(string email);
/// <summary>
/// 检查手机号
/// </summary>
/// <param name="phone"></param>
/// <returns></returns>
Task<SignInResult> CheckPhoneAsync(string phone);
/// <summary>
/// 批量获取用户信息
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
Task<IEnumerable<TResult>> GetUsersAsync<TResult>(ISpecification<User, TResult> specification);
Task<IEnumerable<User>> GetUsersAsync(ISpecification<User> specification);
}
}