SysUserExtOrgPosService.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. namespace Admin.NET.Core.Service;
  2. /// <summary>
  3. /// 系统用户附属机构职位服务
  4. /// </summary>
  5. public class SysUserExtOrgPosService : ITransient
  6. {
  7. private readonly SqlSugarRepository<SysUserExtOrgPos> _sysEmpExtOrgPosRep;
  8. public SysUserExtOrgPosService(SqlSugarRepository<SysUserExtOrgPos> sysEmpExtOrgPosRep)
  9. {
  10. _sysEmpExtOrgPosRep = sysEmpExtOrgPosRep;
  11. }
  12. /// <summary>
  13. /// 保存或编辑附属机构信息
  14. /// </summary>
  15. /// <param name="userId"></param>
  16. /// <param name="extIdList"></param>
  17. /// <returns></returns>
  18. [SqlSugarUnitOfWork]
  19. public async Task AddOrUpdate(long userId, List<UserExtOrgPosOutput> extIdList)
  20. {
  21. await DeleteEmpExtByUserId(userId); // 先删除
  22. var extOrgPos = extIdList.Select(u => new SysUserExtOrgPos
  23. {
  24. UserId = userId,
  25. OrgId = u.OrgId,
  26. PosId = u.PosId
  27. }).ToList();
  28. await _sysEmpExtOrgPosRep.InsertRangeAsync(extOrgPos);
  29. }
  30. /// <summary>
  31. /// 根据用户Id获取附属机构和职位信息
  32. /// </summary>
  33. /// <param name="userId"></param>
  34. /// <returns></returns>
  35. public async Task<List<UserExtOrgPosOutput>> GetEmpExtOrgPosList(long userId)
  36. {
  37. return await _sysEmpExtOrgPosRep.AsQueryable()
  38. .Mapper(u => u.SysOrg, u => u.OrgId)
  39. .Mapper(u => u.SysPos, u => u.PosId)
  40. .Where(u => u.UserId == userId)
  41. .Select(u => new UserExtOrgPosOutput
  42. {
  43. OrgId = u.SysOrg.Id,
  44. OrgCode = u.SysOrg.Code,
  45. OrgName = u.SysOrg.Name,
  46. PosId = u.SysPos.Id,
  47. PosCode = u.SysPos.Code,
  48. PosName = u.SysPos.Name
  49. }).ToListAsync();
  50. }
  51. /// <summary>
  52. /// 根据附属机构Id判断是否有用户
  53. /// </summary>
  54. /// <param name="orgId"></param>
  55. /// <returns></returns>
  56. public async Task<bool> HasExtOrgEmp(long orgId)
  57. {
  58. return await _sysEmpExtOrgPosRep.IsAnyAsync(u => u.OrgId == orgId);
  59. }
  60. /// <summary>
  61. /// 根据附属职位Id判断是否有用户
  62. /// </summary>
  63. /// <param name="posId"></param>
  64. /// <returns></returns>
  65. public async Task<bool> HasExtPosEmp(long posId)
  66. {
  67. return await _sysEmpExtOrgPosRep.IsAnyAsync(u => u.PosId == posId);
  68. }
  69. /// <summary>
  70. /// 根据用户Id删除用户附属
  71. /// </summary>
  72. /// <param name="userId"></param>
  73. /// <returns></returns>
  74. public async Task DeleteEmpExtByUserId(long userId)
  75. {
  76. await _sysEmpExtOrgPosRep.DeleteAsync(u => u.UserId == userId);
  77. }
  78. }