|
|
@ -9,10 +9,12 @@ import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
|
|
|
|
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
|
|
|
|
import com.yunxi.scm.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
|
|
|
|
import com.yunxi.scm.module.system.convert.dept.DeptConvert;
|
|
|
|
import com.yunxi.scm.module.system.convert.dept.DeptConvert;
|
|
|
|
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
|
|
|
|
import com.yunxi.scm.module.system.dal.dataobject.dept.DeptDO;
|
|
|
|
|
|
|
|
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
|
import com.yunxi.scm.module.system.dal.mysql.dept.DeptMapper;
|
|
|
|
import com.yunxi.scm.module.system.dal.mysql.dept.DeptMapper;
|
|
|
|
import com.yunxi.scm.module.system.dal.redis.RedisKeyConstants;
|
|
|
|
import com.yunxi.scm.module.system.dal.redis.RedisKeyConstants;
|
|
|
|
import com.yunxi.scm.module.system.enums.dept.DeptIdEnum;
|
|
|
|
import com.yunxi.scm.module.system.enums.dept.DeptIdEnum;
|
|
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
|
|
import com.google.common.annotations.VisibleForTesting;
|
|
|
|
|
|
|
|
import com.yunxi.scm.module.system.service.user.AdminUserService;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
@ -38,6 +40,8 @@ public class DeptServiceImpl implements DeptService {
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private DeptMapper deptMapper;
|
|
|
|
private DeptMapper deptMapper;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private AdminUserService userService;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST,
|
|
|
|
@CacheEvict(cacheNames = RedisKeyConstants.DEPT_CHILDREN_ID_LIST,
|
|
|
@ -202,4 +206,30 @@ public class DeptServiceImpl implements DeptService {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<DeptDO> buildTree(List<DeptDO> deptDOList, long pid) {
|
|
|
|
|
|
|
|
List<DeptDO> treeList = new ArrayList<>();
|
|
|
|
|
|
|
|
for (DeptDO dept : deptDOList) {
|
|
|
|
|
|
|
|
if (dept.getParentId() == pid) {
|
|
|
|
|
|
|
|
dept.setChildren(buildTree(deptDOList, dept.getId()));
|
|
|
|
|
|
|
|
treeList.add(dept);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return treeList;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<DeptDO> setBuildTree(List<DeptDO> deptDOList) {
|
|
|
|
|
|
|
|
List<DeptDO> tree = new ArrayList<>();
|
|
|
|
|
|
|
|
for (DeptDO deptDO : deptDOList) {
|
|
|
|
|
|
|
|
if (deptDO.getChildren() != null && deptDO.getChildren().size()>0) {
|
|
|
|
|
|
|
|
setBuildTree(deptDO.getChildren());
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
List<AdminUserDO> adminUserDOList = userService.getUserListByDeptIds(Collections.singleton(deptDO.getId()));
|
|
|
|
|
|
|
|
deptDO.setChildren(adminUserDOList);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return tree;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|