| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package com.ydtech.modules.admin.utils;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.ydtech.modules.admin.dao.KztDataPermissionMapper;
- import com.ydtech.modules.admin.dao.SysUserDeptRelationshipMapper;
- import com.ydtech.modules.admin.dao.SysUserMapper;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.po.KztDataPermission;
- import com.ydtech.modules.admin.model.po.SysUserDeptRelationship;
- import com.ydtech.modules.admin.model.po.SysUserTreeShowLevel;
- import com.ydtech.modules.admin.model.vo.KztGetDeptUtilsDto;
- import com.ydtech.modules.admin.service.SysUserService;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.esm.service.EsmUserReferrerService;
- import com.ydtech.utils.StringUtils;
- import org.apache.commons.lang3.ObjectUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.stereotype.Component;
- import java.net.URI;
- import java.net.URISyntaxException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.stream.Collectors;
- @Component
- public class KztGetDeptUtils {
- @Autowired
- private SysUserDeptRelationshipMapper sysUserDeptRelationshipMapper;
- @Autowired
- private KztDataPermissionMapper kztDataPermissionMapper;
- @Autowired
- private SysUserService sysUserService;
- @Autowired
- private EsmUserReferrerService esmUserReferrerService;
- public KztGetDeptUtilsDto KztGetDeptIds(String requestURL) {
- try {
- ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
- SysUserDeptRelationshipMapper userDeptMapper = applicationContext.getBean(SysUserDeptRelationshipMapper.class);
- KztDataPermissionMapper dataPermissionMapper = applicationContext.getBean(KztDataPermissionMapper.class);
- URI uri = new URI(requestURL);
- String path = uri.getPath();
- KztDataPermission kztDataPermissions = dataPermissionMapper.selectOne(new QueryWrapper<KztDataPermission>().eq("url", path));
- if (kztDataPermissions != null) {
- String userId = BaseController.getUserId();
- String userName = BaseController.getUserName();
- if(!"admin".equals(userName)){
- String dataPermissionId = kztDataPermissions.getDataPermissionId();
- KztGetDeptUtilsDto resultDto = handleDataPermission(userId, dataPermissionId, userDeptMapper);
- return resultDto;
- }
- }
- } catch (URISyntaxException e) {
- // 可以选择抛出自定义异常或记录更详细的日志
- e.printStackTrace();
- }
- return new KztGetDeptUtilsDto(); // 返回一个空的DTO或设置默认值的DTO
- }
- private KztGetDeptUtilsDto handleDataPermission(String userId, String dataPermissionId, SysUserDeptRelationshipMapper userDeptMapper) {
- KztGetDeptUtilsDto resultDto = new KztGetDeptUtilsDto();
- if ("1".equals(dataPermissionId)) {
- List<SysUserDeptRelationship> relationships = userDeptMapper.selectList(new QueryWrapper<SysUserDeptRelationship>().eq("user_id", userId));
- if (!relationships.isEmpty()) {
- List<String> deptIds = relationships.stream().map(SysUserDeptRelationship::getDeptId).collect(Collectors.toList());
- resultDto.setIds(deptIds);
- resultDto.setType("1");
- }
- } else if ("3".equals(dataPermissionId)) {
- ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
- EsmUserReferrerService dataPermissionMapper = applicationContext.getBean(EsmUserReferrerService.class);
- // List<SysUser> ids = new ArrayList<>();
- // List<String> userList = dataPermissionMapper.getUpUser(userId,ids); // 假设此方法直接返回用户列表
- List<String> ids = new ArrayList<>();
- List<String> userList = this.getUserTreeHx(userId, ids);
- userList.add(userId); //添加本人
- if (!userList.isEmpty()) {
- resultDto.setIds(userList);
- resultDto.setType("2");
- }
- }
- return resultDto;
- }
- private List<String> getUserTreeHx(String userId, List<String> ids) {
- ApplicationContext applicationContext = SpringContextUtil.getApplicationContext();
- SysUserMapper sysUserMapper = applicationContext.getBean(SysUserMapper.class);
- sysUserMapper.selectUserById(userId);
- List<SysUser> sysUsers = sysUserMapper.selectByLeadId(userId);
- if (!sysUsers.isEmpty()) {
- ids.addAll(sysUsers.stream().map(SysUser::getId).collect(Collectors.toList()));
- }
- for (SysUser sysUser : sysUsers) {
- this.getUserTreeHx(sysUser.getId(), ids);
- }
- return ids;
- }
- }
|