SysUserOrgService.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. namespace Admin.NET.Core.Service;
  2. /// <summary>
  3. /// 系统用户机构服务
  4. /// </summary>
  5. public class SysUserOrgService : ITransient
  6. {
  7. private readonly SqlSugarRepository<SysUserOrg> _sysUserOrgRep;
  8. public SysUserOrgService(SqlSugarRepository<SysUserOrg> sysUserOrgRep)
  9. {
  10. _sysUserOrgRep = sysUserOrgRep;
  11. }
  12. /// <summary>
  13. /// 授权用户所属机构
  14. /// </summary>
  15. /// <param name="input"></param>
  16. /// <returns></returns>
  17. [UnitOfWork]
  18. public async Task GrantUserOrg(UserOrgInput input)
  19. {
  20. await _sysUserOrgRep.DeleteAsync(u => u.UserId == input.Id);
  21. var userOrgs = input.OrgIdList.Select(u => new SysUserOrg
  22. {
  23. UserId = input.Id,
  24. OrgId = u
  25. }).ToList();
  26. await _sysUserOrgRep.InsertRangeAsync(userOrgs);
  27. }
  28. /// <summary>
  29. /// 根据用户Id获取机构Id集合
  30. /// </summary>
  31. /// <param name="userId"></param>
  32. /// <returns></returns>
  33. public async Task<List<long>> GetUserOrgIdList(long userId)
  34. {
  35. return await _sysUserOrgRep.AsQueryable()
  36. .Where(u => u.UserId == userId)
  37. .Select(u => u.OrgId).ToListAsync();
  38. }
  39. /// <summary>
  40. /// 根据机构Id集合删除用户机构
  41. /// </summary>
  42. /// <param name="orgIdList"></param>
  43. /// <returns></returns>
  44. public async Task DeleteUserOrgByOrgIdList(List<long> orgIdList)
  45. {
  46. await _sysUserOrgRep.DeleteAsync(u => orgIdList.Contains(u.OrgId));
  47. }
  48. /// <summary>
  49. /// 根据用户Id删除用户机构
  50. /// </summary>
  51. /// <param name="userId"></param>
  52. /// <returns></returns>
  53. public async Task DeleteUserOrgByUserId(long userId)
  54. {
  55. await _sysUserOrgRep.DeleteAsync(u => u.UserId == userId);
  56. }
  57. /// <summary>
  58. /// 增加用户机构
  59. /// </summary>
  60. /// <returns></returns>
  61. public async Task AddUserOrg(SysUserOrg userOrg)
  62. {
  63. await _sysUserOrgRep.InsertAsync(userOrg);
  64. }
  65. }