From a29a7abbdaebe1f03ed196c9b10fb87793c940c4 Mon Sep 17 00:00:00 2001 From: yangzhengze <1403014932@qq.com> Date: Mon, 16 Jul 2018 17:50:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=9F=BA=E7=A1=801?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/dept/mapper/DeptMapper.java | 8 +++ .../system/dept/service/DeptServiceImpl.java | 56 +++++++++++++------ .../system/menu/service/MenuServiceImpl.java | 3 +- .../resources/mybatis/system/DeptMapper.xml | 10 ++-- .../resources/templates/system/role/edit.html | 21 ++++++- 5 files changed, 71 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java b/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java index 4e79171c3..0e33a9ace 100644 --- a/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java +++ b/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java @@ -72,4 +72,12 @@ public interface DeptMapper * @return 结果 */ public Dept checkDeptNameUnique(String deptName); + + /** + * 根据角色ID查询菜单 + * + * @param roleId 角色ID + * @return 菜单列表 + */ + public List selectRoleDeptTree(Long roleId); } diff --git a/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java b/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java index 40580ce34..a7df32f65 100644 --- a/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java @@ -46,22 +46,11 @@ public class DeptServiceImpl implements IDeptService { List> trees = new ArrayList>(); List deptList = deptMapper.selectDeptAll(); - - for (Dept dept : deptList) - { - if (UserConstants.DEPT_NORMAL.equals(dept.getStatus())) - { - Map deptMap = new HashMap(); - deptMap.put("id", dept.getDeptId()); - deptMap.put("pId", dept.getParentId()); - deptMap.put("name", dept.getDeptName()); - deptMap.put("title", dept.getDeptName()); - trees.add(deptMap); - } - } + trees=getTrees(deptList,false,null); return trees; } + /** * 根据角色ID查询部门(数据权限) * @@ -70,17 +59,50 @@ public class DeptServiceImpl implements IDeptService */ @Override public List> roleDeptTreeData(Role role) { - Long roleId = role.getRoleId(); + Long roleId=role.getRoleId(); List> trees = new ArrayList>(); List deptList=deptMapper.selectDeptAll(); if(StringUtils.isNotNull(roleId)){ - // List roleDeptList=deptMapper. + List roleDeptList=deptMapper.selectRoleDeptTree(roleId); + trees=getTrees(deptList,true,roleDeptList); }else { - + trees=getTrees(deptList,false,null); } - return null; + return trees; } + /** + * 对象转菜单树 + * + * @param menuList 菜单列表 + * @param isCheck 是否需要选中 + * @param roleDeptList 角色已存在菜单列表 + * @return + */ + public List> getTrees(List menuList, boolean isCheck, List roleDeptList){ + List> trees = new ArrayList>(); + for (Dept dept : menuList) + { + if (UserConstants.DEPT_NORMAL.equals(dept.getStatus())) + { + Map deptMap = new HashMap(); + deptMap.put("id", dept.getDeptId()); + deptMap.put("pId", dept.getParentId()); + deptMap.put("name", dept.getDeptName()); + deptMap.put("title", dept.getDeptName()); + if (isCheck) + { + deptMap.put("checked", roleDeptList.contains(dept.getDeptId() + dept.getDeptName())); + } + else + { + deptMap.put("checked", false); + } + trees.add(deptMap); + } + } + return trees; + } /** * 查询部门人数 * diff --git a/src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java b/src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java index b68fecdc9..8bdfb7515 100644 --- a/src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java @@ -107,8 +107,7 @@ public class MenuServiceImpl implements IMenuService /** * 查询所有菜单 - * - * @param role 角色对象 + * * @return 菜单列表 */ @Override diff --git a/src/main/resources/mybatis/system/DeptMapper.xml b/src/main/resources/mybatis/system/DeptMapper.xml index 4110619d5..1868ba8a2 100644 --- a/src/main/resources/mybatis/system/DeptMapper.xml +++ b/src/main/resources/mybatis/system/DeptMapper.xml @@ -25,11 +25,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"