OrgRepository.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Collections.Generic;
  2. using System.Threading.Tasks;
  3. using ZhonTai.Admin.Core.Consts;
  4. using ZhonTai.Admin.Core.Db.Transaction;
  5. using ZhonTai.Admin.Core.Repositories;
  6. using ZhonTai.Admin.Domain;
  7. using ZhonTai.Admin.Domain.Org;
  8. namespace ZhonTai.Admin.Repositories;
  9. public class OrgRepository : RepositoryBase<OrgEntity>, IOrgRepository
  10. {
  11. private readonly IRepositoryBase<UserOrgEntity> _userOrgRepository;
  12. public OrgRepository(UnitOfWorkManagerCloud uowm, IRepositoryBase<UserOrgEntity> userOrgRepository) : base(DbKeys.AdminDb, uowm)
  13. {
  14. _userOrgRepository = userOrgRepository;
  15. }
  16. /// <summary>
  17. /// 获得本部门和下级部门Id
  18. /// </summary>
  19. /// <param name="id"></param>
  20. /// <returns></returns>
  21. public async Task<List<long>> GetChildIdListAsync(long id)
  22. {
  23. return await Select
  24. .Where(a => a.Id == id)
  25. .AsTreeCte()
  26. .ToListAsync(a => a.Id);
  27. }
  28. /// <summary>
  29. /// 本部门下是否有员工
  30. /// </summary>
  31. /// <param name="id"></param>
  32. /// <returns></returns>
  33. public async Task<bool> HasUser(long id)
  34. {
  35. return await _userOrgRepository.Select.Where(a => a.OrgId == id).AnyAsync();
  36. }
  37. /// <summary>
  38. /// 部门列表下是否有员工
  39. /// </summary>
  40. /// <param name="idList"></param>
  41. /// <returns></returns>
  42. public async Task<bool> HasUser(List<long> idList)
  43. {
  44. return await _userOrgRepository.Select.Where(a => idList.Contains(a.OrgId)).AnyAsync();
  45. }
  46. }