From 59e11b04920206948016f003ad832bf732fb1c69 Mon Sep 17 00:00:00 2001 From: lengleng Date: Sat, 20 Jun 2020 23:03:34 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20Refactoring=20code.=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=EF=BC=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E9=83=A8=E9=97=A8=E6=A0=91=20=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E6=9C=89=E6=97=A0=E6=9D=83=E9=99=90=E6=A0=87=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pigx/admin/api/dto/DeptTree.java | 9 ++++++- .../service/impl/SysDeptServiceImpl.java | 25 +++++++++++-------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/DeptTree.java b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/DeptTree.java index fee58aecc..3ab54fddb 100644 --- a/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/DeptTree.java +++ b/pigx-upms/pigx-upms-api/src/main/java/com/pig4cloud/pigx/admin/api/dto/DeptTree.java @@ -25,8 +25,10 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** + * 部门树对象 + * * @author lengleng - * @date 2018/1/20 部门树 + * @date 2020-06-19 */ @Data @ApiModel(value = "部门树") @@ -36,4 +38,9 @@ public class DeptTree extends TreeNode { @ApiModelProperty(value = "部门名称") private String name; + /** + * 是否显示被锁定 + */ + private Boolean isLock = true; + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java index 73e3179eb..100efe0af 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java @@ -29,6 +29,7 @@ import com.pig4cloud.pigx.admin.api.vo.TreeUtil; import com.pig4cloud.pigx.admin.mapper.SysDeptMapper; import com.pig4cloud.pigx.admin.service.SysDeptRelationService; import com.pig4cloud.pigx.admin.service.SysDeptService; +import com.pig4cloud.pigx.common.data.datascope.DataScope; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -115,25 +116,27 @@ public class SysDeptServiceImpl extends ServiceImpl impl */ @Override public List selectTree() { - return getDeptTree(deptMapper.selectList(Wrappers.emptyWrapper())); - } + // 查询全部部门 + List deptAllList = deptMapper.selectList(Wrappers.emptyWrapper()); + // 查询数据权限内部门 + List deptOwnIdList = deptMapper.selectListByScope(Wrappers.emptyWrapper(), new DataScope()).stream() + .map(SysDept::getDeptId).collect(Collectors.toList()); - /** - * 构建部门树 - * @param depts 部门 - * @return - */ - private List getDeptTree(List depts) { - List treeList = depts.stream().filter(dept -> !dept.getDeptId().equals(dept.getParentId())) + // 权限内部门 + List collect = deptAllList.stream().filter(dept -> dept.getDeptId().intValue() != dept.getParentId()) .sorted(Comparator.comparingInt(SysDept::getSort)).map(dept -> { DeptTree node = new DeptTree(); node.setId(dept.getDeptId()); node.setParentId(dept.getParentId()); node.setName(dept.getName()); + + // 有权限不返回标识 + if (deptOwnIdList.contains(dept.getDeptId())) { + node.setIsLock(Boolean.FALSE); + } return node; }).collect(Collectors.toList()); - return TreeUtil.build(treeList, - depts.stream().sorted(Comparator.comparingInt(SysDept::getDeptId)).findFirst().get().getParentId()); + return TreeUtil.build(collect, 0); } }