using OrpaonVision.Core.Results; using OrpaonVision.Model.Security; namespace OrpaonVision.ConfigApp.Infrastructure.Services; /// /// 用户管理服务接口。 /// public interface IUserService { /// /// 创建用户。 /// Result CreateUser(UserModel user); /// /// 更新用户。 /// Result UpdateUser(UserModel user); /// /// 删除用户。 /// Result DeleteUser(Guid userId); /// /// 获取用户详情。 /// Result GetUserById(Guid userId); /// /// 根据用户名获取用户。 /// Result GetUserByUsername(string username); /// /// 获取用户分页列表。 /// Result> GetUserPagedList(int pageIndex = 1, int pageSize = 20, UserStatus? status = null, string? keyword = null); /// /// 启用用户。 /// Result EnableUser(Guid userId, string enabledBy); /// /// 禁用用户。 /// Result DisableUser(Guid userId, string disabledBy); /// /// 重置用户密码。 /// Result ResetPassword(Guid userId, string newPassword, string resetBy); /// /// 解锁用户账户。 /// Result UnlockUser(Guid userId, string unlockedBy); /// /// 验证用户密码。 /// Result VerifyPassword(string username, string password); /// /// 更新用户最后登录信息。 /// Result UpdateLastLogin(Guid userId, string ipAddress, string userAgent); /// /// 获取用户统计信息。 /// Result GetUserStatistics(); } /// /// 角色管理服务接口。 /// public interface IRoleService { /// /// 创建角色。 /// Result CreateRole(RoleModel role); /// /// 更新角色。 /// Result UpdateRole(RoleModel role); /// /// 删除角色。 /// Result DeleteRole(Guid roleId); /// /// 获取角色详情。 /// Result GetRoleById(Guid roleId); /// /// 获取角色分页列表。 /// Result> GetRolePagedList(int pageIndex = 1, int pageSize = 20, RoleStatus? status = null, string? keyword = null); /// /// 启用角色。 /// Result EnableRole(Guid roleId, string enabledBy); /// /// 禁用角色。 /// Result DisableRole(Guid roleId, string disabledBy); /// /// 获取所有启用的角色。 /// Result> GetEnabledRoles(); /// /// 检查角色名称是否存在。 /// Result CheckRoleNameExists(string name, Guid? excludeRoleId = null); } /// /// 权限管理服务接口。 /// public interface IPermissionService { /// /// 创建权限。 /// Result CreatePermission(PermissionModel permission); /// /// 更新权限。 /// Result UpdatePermission(PermissionModel permission); /// /// 删除权限。 /// Result DeletePermission(Guid permissionId); /// /// 获取权限详情。 /// Result GetPermissionById(Guid permissionId); /// /// 获取权限分页列表。 /// Result> GetPermissionPagedList(int pageIndex = 1, int pageSize = 20, PermissionStatus? status = null, string? keyword = null); /// /// 获取所有启用的权限。 /// Result> GetEnabledPermissions(); /// /// 根据模块获取权限。 /// Result> GetPermissionsByModule(string module); /// /// 检查权限编码是否存在。 /// Result CheckPermissionCodeExists(string code, Guid? excludePermissionId = null); } /// /// 用户角色管理服务接口。 /// public interface IUserRoleService { /// /// 分配角色给用户。 /// Task AssignRoleToUser(Guid userId, Guid roleId, string assignedBy); /// /// 取消用户角色。 /// Task RemoveRoleFromUser(Guid userId, Guid roleId, string removedBy); /// /// 获取用户的角色列表。 /// Task>> GetUserRoles(Guid userId); /// /// 获取角色的用户列表。 /// Task>> GetRoleUsers(Guid roleId); /// /// 批量分配角色给用户。 /// Task AssignRolesToUser(Guid userId, List roleIds, string assignedBy); /// /// 批量取消用户角色。 /// Task RemoveRolesFromUser(Guid userId, List roleIds, string removedBy); /// /// 检查用户是否拥有指定角色。 /// Task> CheckUserHasRole(Guid userId, Guid roleId); /// /// 检查用户是否拥有指定角色名称。 /// Task> CheckUserHasRole(Guid userId, string roleName); } /// /// 角色权限管理服务接口。 /// public interface IRolePermissionService { /// /// 分配权限给角色。 /// Task AssignPermissionToRole(Guid roleId, Guid permissionId, string assignedBy); /// /// 取消角色权限。 /// Task RemovePermissionFromRole(Guid roleId, Guid permissionId, string removedBy); /// /// 获取角色的权限列表。 /// Task>> GetRolePermissions(Guid roleId); /// /// 获取权限的角色列表。 /// Task>> GetPermissionRoles(Guid permissionId); /// /// 批量分配权限给角色。 /// Task AssignPermissionsToRole(Guid roleId, List permissionIds, string assignedBy); /// /// 批量取消角色权限。 /// Task RemovePermissionsFromRole(Guid roleId, List permissionIds, string removedBy); /// /// 检查角色是否拥有指定权限。 /// Task> CheckRoleHasPermission(Guid roleId, Guid permissionId); /// /// 检查角色是否拥有指定权限编码。 /// Task> CheckRoleHasPermission(Guid roleId, string permissionCode); } /// /// 权限验证服务接口。 /// public interface IAuthorizationService { /// /// 检查用户是否拥有指定权限。 /// Result CheckUserHasPermission(Guid userId, string permissionCode); /// /// 检查用户是否拥有指定权限。 /// Result CheckUserHasPermission(Guid userId, Guid permissionId); /// /// 检查用户是否拥有指定角色。 /// Result CheckUserHasRole(Guid userId, string roleName); /// /// 获取用户的所有权限。 /// Result> GetUserPermissions(Guid userId); /// /// 获取用户的所有角色。 /// Result> GetUserRoles(Guid userId); /// /// 验证用户是否有权限执行指定操作。 /// Result Authorize(Guid userId, string module, string action); /// /// 批量权限检查。 /// Result> BatchCheckPermissions(Guid userId, List permissionCodes); } /// /// 用户统计信息。 /// public sealed class UserStatistics { /// /// 总用户数。 /// public int TotalUsers { get; set; } /// /// 启用用户数。 /// public int EnabledUsers { get; set; } /// /// 禁用用户数。 /// public int DisabledUsers { get; set; } /// /// 已锁定用户数。 /// public int LockedUsers { get; set; } /// /// 今日登录用户数。 /// public int TodayLoginUsers { get; set; } /// /// 本周登录用户数。 /// public int ThisWeekLoginUsers { get; set; } /// /// 本月登录用户数。 /// public int ThisMonthLoginUsers { get; set; } /// /// 总角色数。 /// public int TotalRoles { get; set; } /// /// 总权限数。 /// public int TotalPermissions { get; set; } /// /// 平均每个用户的角色数。 /// public double AverageRolesPerUser { get; set; } /// /// 平均每个角色的权限数。 /// public double AveragePermissionsPerRole { get; set; } }