KztGetDeptUtils.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.ydtech.modules.admin.utils;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.ydtech.modules.admin.dao.KztDataPermissionMapper;
  4. import com.ydtech.modules.admin.dao.SysUserDeptRelationshipMapper;
  5. import com.ydtech.modules.admin.dao.SysUserMapper;
  6. import com.ydtech.modules.admin.model.SysUser;
  7. import com.ydtech.modules.admin.model.po.KztDataPermission;
  8. import com.ydtech.modules.admin.model.po.SysUserDeptRelationship;
  9. import com.ydtech.modules.admin.model.po.SysUserTreeShowLevel;
  10. import com.ydtech.modules.admin.model.vo.KztGetDeptUtilsDto;
  11. import com.ydtech.modules.admin.service.SysUserService;
  12. import com.ydtech.modules.base.controller.BaseController;
  13. import com.ydtech.modules.esm.service.EsmUserReferrerService;
  14. import com.ydtech.utils.StringUtils;
  15. import org.apache.commons.lang3.ObjectUtils;
  16. import org.springframework.beans.BeanUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.context.ApplicationContext;
  19. import org.springframework.context.annotation.Configuration;
  20. import org.springframework.stereotype.Component;
  21. import java.net.URI;
  22. import java.net.URISyntaxException;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.stream.Collectors;
  27. @Component
  28. public class KztGetDeptUtils {
  29. @Autowired
  30. private SysUserDeptRelationshipMapper sysUserDeptRelationshipMapper;
  31. @Autowired
  32. private KztDataPermissionMapper kztDataPermissionMapper;
  33. @Autowired
  34. private SysUserService sysUserService;
  35. @Autowired
  36. private EsmUserReferrerService esmUserReferrerService;
  37. public KztGetDeptUtilsDto KztGetDeptIds(String requestURL) {
  38. try {
  39. ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
  40. SysUserDeptRelationshipMapper userDeptMapper = applicationContext.getBean(SysUserDeptRelationshipMapper.class);
  41. KztDataPermissionMapper dataPermissionMapper = applicationContext.getBean(KztDataPermissionMapper.class);
  42. URI uri = new URI(requestURL);
  43. String path = uri.getPath();
  44. KztDataPermission kztDataPermissions = dataPermissionMapper.selectOne(new QueryWrapper<KztDataPermission>().eq("url", path));
  45. if (kztDataPermissions != null) {
  46. String userId = BaseController.getUserId();
  47. String userName = BaseController.getUserName();
  48. if(!"admin".equals(userName)){
  49. String dataPermissionId = kztDataPermissions.getDataPermissionId();
  50. KztGetDeptUtilsDto resultDto = handleDataPermission(userId, dataPermissionId, userDeptMapper);
  51. return resultDto;
  52. }
  53. }
  54. } catch (URISyntaxException e) {
  55. // 可以选择抛出自定义异常或记录更详细的日志
  56. e.printStackTrace();
  57. }
  58. return new KztGetDeptUtilsDto(); // 返回一个空的DTO或设置默认值的DTO
  59. }
  60. private KztGetDeptUtilsDto handleDataPermission(String userId, String dataPermissionId, SysUserDeptRelationshipMapper userDeptMapper) {
  61. KztGetDeptUtilsDto resultDto = new KztGetDeptUtilsDto();
  62. if ("1".equals(dataPermissionId)) {
  63. List<SysUserDeptRelationship> relationships = userDeptMapper.selectList(new QueryWrapper<SysUserDeptRelationship>().eq("user_id", userId));
  64. if (!relationships.isEmpty()) {
  65. List<String> deptIds = relationships.stream().map(SysUserDeptRelationship::getDeptId).collect(Collectors.toList());
  66. resultDto.setIds(deptIds);
  67. resultDto.setType("1");
  68. }
  69. } else if ("3".equals(dataPermissionId)) {
  70. ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
  71. EsmUserReferrerService dataPermissionMapper = applicationContext.getBean(EsmUserReferrerService.class);
  72. // List<SysUser> ids = new ArrayList<>();
  73. // List<String> userList = dataPermissionMapper.getUpUser(userId,ids); // 假设此方法直接返回用户列表
  74. List<String> ids = new ArrayList<>();
  75. List<String> userList = this.getUserTreeHx(userId, ids);
  76. userList.add(userId); //添加本人
  77. if (!userList.isEmpty()) {
  78. resultDto.setIds(userList);
  79. resultDto.setType("2");
  80. }
  81. }
  82. return resultDto;
  83. }
  84. private List<String> getUserTreeHx(String userId, List<String> ids) {
  85. ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
  86. SysUserMapper sysUserMapper = applicationContext.getBean(SysUserMapper.class);
  87. sysUserMapper.selectUserById(userId);
  88. List<SysUser> sysUsers = sysUserMapper.selectByLeadId(userId);
  89. if (!sysUsers.isEmpty()) {
  90. ids.addAll(sysUsers.stream().map(SysUser::getId).collect(Collectors.toList()));
  91. }
  92. for (SysUser sysUser : sysUsers) {
  93. this.getUserTreeHx(sysUser.getId(), ids);
  94. }
  95. return ids;
  96. }
  97. }