SysUserExtOrgPosService.cs 3.0 KB

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