SysUserOrgService.cs 2.3 KB

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