|
@@ -3,11 +3,19 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUserArea;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.SysUserAreaMapper;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
|
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
@@ -32,6 +40,9 @@ import java.util.stream.Collectors;
|
|
|
public class SysUserAreaServiceImpl extends ServiceImpl<SysUserAreaMapper, SysUserArea>
|
|
|
implements SysUserAreaService {
|
|
|
|
|
|
+ private final SysUserMapper userMapper;
|
|
|
+ private final SysDeptMapper deptMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 保存关系
|
|
|
*
|
|
@@ -114,7 +125,29 @@ public class SysUserAreaServiceImpl extends ServiceImpl<SysUserAreaMapper, SysUs
|
|
|
unless = "#result.isEmpty()")
|
|
|
@Override
|
|
|
public List<Long> listUserDept(Long userId, String type) {
|
|
|
- return this.baseMapper.listEntIdByUserIdAndType(userId, type);
|
|
|
+
|
|
|
+ // 获取用户信息
|
|
|
+ SysUser sysUser = userMapper.selectById(userId.intValue());
|
|
|
+
|
|
|
+ // 获取用户的所属企业
|
|
|
+ Integer deptId = sysUser.getDeptId();
|
|
|
+
|
|
|
+ // 获取当前企业下游
|
|
|
+ SysDept queryDept = new SysDept();
|
|
|
+ queryDept.setDeptId(deptId);
|
|
|
+ List<Map<String, Object>> childDept = deptMapper.getChildDept(queryDept);
|
|
|
+ // 获取企业ID
|
|
|
+ List<Long> cdIds =
|
|
|
+ childDept.stream()
|
|
|
+ .mapToLong(cd -> Long.parseLong(cd.get("id").toString()))
|
|
|
+ .boxed()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<Long> allIds = this.baseMapper.listEntIdByUserIdAndType(userId, type);
|
|
|
+
|
|
|
+ return CollUtil.intersectionDistinct(cdIds, allIds).stream()
|
|
|
+ .sorted()
|
|
|
+ .collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
/**
|