SysUserRoleService.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. using Infrastructure.Attribute;
  2. using Infrastructure.Extensions;
  3. using SqlSugar;
  4. using System.Collections.Generic;
  5. using ZR.Model;
  6. using ZR.Model.System;
  7. using ZR.Model.System.Dto;
  8. using ZR.Repository;
  9. using ZR.Service.System.IService;
  10. namespace ZR.Service.System
  11. {
  12. /// <summary>
  13. /// 用户角色
  14. /// </summary>
  15. [AppService(ServiceType = typeof(ISysUserRoleService), ServiceLifetime = LifeTime.Transient)]
  16. public class SysUserRoleService : BaseService<SysUserRole>, ISysUserRoleService
  17. {
  18. //public SysUserRoleRepository SysUserRoleRepository;
  19. //public SysUserRoleService(SysUserRoleRepository sysUserRoleRepository)
  20. //{
  21. // SysUserRoleRepository = sysUserRoleRepository;
  22. //}
  23. /// <summary>
  24. /// 通过角色ID查询角色使用数量
  25. /// </summary>
  26. /// <param name="roleId"></param>
  27. /// <returns></returns>
  28. public int CountUserRoleByRoleId(long roleId)
  29. {
  30. return Count(it => it.RoleId == roleId);
  31. }
  32. /// <summary>
  33. /// 删除用户角色
  34. /// </summary>
  35. /// <param name="userId"></param>
  36. /// <returns></returns>
  37. public int DeleteUserRoleByUserId(int userId)
  38. {
  39. return Delete(it => it.UserId == userId) ? 1 : 0;
  40. }
  41. /// <summary>
  42. /// 批量删除角色对应用户
  43. /// </summary>
  44. /// <param name="roleId"></param>
  45. /// <param name="userIds"></param>
  46. /// <returns></returns>
  47. public int DeleteRoleUserByUserIds(long roleId, List<long> userIds)
  48. {
  49. return Delete(it => it.RoleId == roleId && userIds.Contains(it.UserId)) ? 1 : 0;
  50. }
  51. /// <summary>
  52. /// 添加用户角色
  53. /// </summary>
  54. /// <param name="sysUserRoles"></param>
  55. /// <returns></returns>
  56. public int AddUserRole(List<SysUserRole> sysUserRoles)
  57. {
  58. return Insert(sysUserRoles);
  59. }
  60. /// <summary>
  61. /// 获取用户数据根据角色id
  62. /// </summary>
  63. /// <param name="roleId"></param>
  64. /// <returns></returns>
  65. public List<SysUser> GetSysUsersByRoleId(long roleId)
  66. {
  67. return Context.Queryable<SysUserRole, SysUser > ((t1, u) => new JoinQueryInfos(
  68. JoinType.Left, t1.UserId == u.UserId))
  69. .Where((t1, u) => t1.RoleId == roleId && u.DelFlag == "0")
  70. .Select((t1, u) => u)
  71. .ToList();
  72. }
  73. /// <summary>
  74. /// 获取用户数据根据角色id
  75. /// </summary>
  76. /// <param name="roleUserQueryDto"></param>
  77. /// <returns></returns>
  78. public PagedInfo<SysUser> GetSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
  79. {
  80. //return SysUserRoleRepository.GetSysUsersByRoleId(roleUserQueryDto);
  81. var query = Context.Queryable<SysUserRole, SysUser>((t1, u) => new JoinQueryInfos(
  82. JoinType.Left, t1.UserId == u.UserId))
  83. .Where((t1, u) => t1.RoleId == roleUserQueryDto.RoleId && u.DelFlag == "0");
  84. if (!string.IsNullOrEmpty(roleUserQueryDto.UserName))
  85. {
  86. query = query.Where((t1, u) => u.UserName.Contains(roleUserQueryDto.UserName));
  87. }
  88. return query.Select((t1, u) => u).ToPage(roleUserQueryDto);
  89. }
  90. /// <summary>
  91. /// 获取尚未指派的用户数据根据角色id
  92. /// </summary>
  93. /// <param name="roleUserQueryDto"></param>
  94. /// <returns></returns>
  95. public PagedInfo<SysUser> GetExcludedSysUsersByRoleId(RoleUserQueryDto roleUserQueryDto)
  96. {
  97. var query = Context.Queryable<SysUser>()
  98. .Where(it => it.DelFlag == "0")
  99. .Where(it => SqlFunc.Subqueryable<SysUserRole>().Where(s => s.UserId == it.UserId && s.RoleId == roleUserQueryDto.RoleId).NotAny())
  100. .WhereIF(roleUserQueryDto.UserName.IsNotEmpty(), it => it.UserName.Contains(roleUserQueryDto.UserName));
  101. return query.ToPage(roleUserQueryDto);
  102. }
  103. /// <summary>
  104. /// 新增用户角色信息
  105. /// </summary>
  106. /// <param name="user"></param>
  107. /// <returns></returns>
  108. public int InsertUserRole(SysUser user)
  109. {
  110. List<SysUserRole> userRoles = new();
  111. foreach (var item in user.RoleIds)
  112. {
  113. userRoles.Add(new SysUserRole() { RoleId = item, UserId = user.UserId });
  114. }
  115. return userRoles.Count > 0 ? AddUserRole(userRoles) : 0;
  116. }
  117. /// <summary>
  118. /// 新增加角色用户
  119. /// </summary>
  120. /// <param name="roleUsersCreateDto"></param>
  121. /// <returns></returns>
  122. public int InsertRoleUser(RoleUsersCreateDto roleUsersCreateDto)
  123. {
  124. List<SysUserRole> userRoles = new();
  125. foreach (var item in roleUsersCreateDto.UserIds)
  126. {
  127. userRoles.Add(new SysUserRole() { RoleId = roleUsersCreateDto.RoleId, UserId = item });
  128. }
  129. return userRoles.Count > 0 ? AddUserRole(userRoles) : 0;
  130. }
  131. }
  132. }