From 37d4080b22325bd4ed476acd4f2e3a19f55ff52f Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期四, 10 六月 2021 15:38:53 +0800 Subject: [PATCH] 优化部门父级启用状态 --- src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java | 30 +++++++++++++++--------------- 1 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java index 4e0ef4a..5dc8e74 100644 --- a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java @@ -7,12 +7,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.exception.CustomException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.aspectj.lang.annotation.DataScope; import com.ruoyi.framework.web.domain.TreeSelect; import com.ruoyi.project.system.domain.SysDept; +import com.ruoyi.project.system.domain.SysRole; import com.ruoyi.project.system.mapper.SysDeptMapper; +import com.ruoyi.project.system.mapper.SysRoleMapper; import com.ruoyi.project.system.service.ISysDeptService; /** @@ -25,6 +28,9 @@ { @Autowired private SysDeptMapper deptMapper; + + @Autowired + private SysRoleMapper roleMapper; /** * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁 @@ -93,7 +99,8 @@ @Override public List<Integer> selectDeptListByRoleId(Long roleId) { - return deptMapper.selectDeptListByRoleId(roleId); + SysRole role = roleMapper.selectRoleById(roleId); + return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly()); } /** @@ -205,7 +212,7 @@ if (UserConstants.DEPT_NORMAL.equals(dept.getStatus())) { // 濡傛灉璇ラ儴闂ㄦ槸鍚敤鐘舵�侊紝鍒欏惎鐢ㄨ閮ㄩ棬鐨勬墍鏈変笂绾ч儴闂� - updateParentDeptStatus(dept); + updateParentDeptStatusNormal(dept); } return result; } @@ -215,12 +222,11 @@ * * @param dept 褰撳墠閮ㄩ棬 */ - private void updateParentDeptStatus(SysDept dept) + private void updateParentDeptStatusNormal(SysDept dept) { - String updateBy = dept.getUpdateBy(); - dept = deptMapper.selectDeptById(dept.getDeptId()); - dept.setUpdateBy(updateBy); - deptMapper.updateDeptStatus(dept); + String ancestors = dept.getAncestors(); + Long[] deptIds = Convert.toLongArray(ancestors); + deptMapper.updateDeptStatusNormal(deptIds); } /** @@ -235,7 +241,7 @@ List<SysDept> children = deptMapper.selectChildrenDeptById(deptId); for (SysDept child : children) { - child.setAncestors(child.getAncestors().replace(oldAncestors, newAncestors)); + child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); } if (children.size() > 0) { @@ -267,13 +273,7 @@ { if (hasChild(list, tChild)) { - // 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 - Iterator<SysDept> it = childList.iterator(); - while (it.hasNext()) - { - SysDept n = (SysDept) it.next(); - recursionFn(list, n); - } + recursionFn(list, tChild); } } } -- Gitblit v1.9.3