SysRoleOrgService.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995
  2. //
  3. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
  4. namespace Admin.NET.Core.Service;
  5. /// <summary>
  6. /// 系统角色机构服务
  7. /// </summary>
  8. public class SysRoleOrgService : ITransient
  9. {
  10. private readonly SqlSugarRepository<SysRoleOrg> _sysRoleOrgRep;
  11. public SysRoleOrgService(SqlSugarRepository<SysRoleOrg> sysRoleOrgRep)
  12. {
  13. _sysRoleOrgRep = sysRoleOrgRep;
  14. }
  15. /// <summary>
  16. /// 授权角色机构
  17. /// </summary>
  18. /// <param name="input"></param>
  19. /// <returns></returns>
  20. public async Task GrantRoleOrg(RoleOrgInput input)
  21. {
  22. await _sysRoleOrgRep.DeleteAsync(u => u.RoleId == input.Id);
  23. if (input.DataScope == (int)DataScopeEnum.Define)
  24. {
  25. var roleOrgs = input.OrgIdList.Select(u => new SysRoleOrg
  26. {
  27. RoleId = input.Id,
  28. OrgId = u
  29. }).ToList();
  30. await _sysRoleOrgRep.InsertRangeAsync(roleOrgs);
  31. }
  32. }
  33. /// <summary>
  34. /// 根据角色Id集合获取角色机构Id集合
  35. /// </summary>
  36. /// <param name="roleIdList"></param>
  37. /// <returns></returns>
  38. public async Task<List<long>> GetRoleOrgIdList(List<long> roleIdList)
  39. {
  40. return await _sysRoleOrgRep.AsQueryable()
  41. .Where(u => roleIdList.Contains(u.RoleId))
  42. .Select(u => u.OrgId).ToListAsync();
  43. }
  44. /// <summary>
  45. /// 根据机构Id集合删除角色机构
  46. /// </summary>
  47. /// <param name="orgIdList"></param>
  48. /// <returns></returns>
  49. public async Task DeleteRoleOrgByOrgIdList(List<long> orgIdList)
  50. {
  51. await _sysRoleOrgRep.DeleteAsync(u => orgIdList.Contains(u.OrgId));
  52. }
  53. /// <summary>
  54. /// 根据角色Id删除角色机构
  55. /// </summary>
  56. /// <param name="roleId"></param>
  57. /// <returns></returns>
  58. public async Task DeleteRoleOrgByRoleId(long roleId)
  59. {
  60. await _sysRoleOrgRep.DeleteAsync(u => u.RoleId == roleId);
  61. }
  62. }