From eb72d42b77b897e2cf9dc8afbc54d73366f0f6b7 Mon Sep 17 00:00:00 2001 From: yangzhengze <1403014932@qq.com> Date: Sat, 14 Jul 2018 19:34:08 +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=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dept/controller/DeptController.java | 12 +++++++ .../system/dept/service/DeptServiceImpl.java | 21 ++++++++++++ .../system/dept/service/IDeptService.java | 9 +++++ .../project/system/role/domain/Role.java | 12 ++++++- .../system/role/service/RoleServiceImpl.java | 33 ++++++++++++++++++- .../resources/mybatis/system/DeptMapper.xml | 8 +++++ .../resources/templates/system/role/edit.html | 26 ++++++++++++++- 7 files changed, 118 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java b/src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java index ddd5931e2..4a7707aaf 100644 --- a/src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java +++ b/src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java @@ -2,6 +2,8 @@ package com.ruoyi.project.system.dept.controller; import java.util.List; import java.util.Map; + +import com.ruoyi.project.system.role.domain.Role; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -149,4 +151,14 @@ public class DeptController extends BaseController List> tree = deptService.selectDeptTree(); return tree; } + + /** + * 加载角色部门(数据权限)列表树 + */ + @GetMapping("/roleDeptTreeData") + @ResponseBody + public List> deptTreeData(Role role){ + List> tree = deptService.roleDeptTreeData(role); + return tree; + } } 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 f684a2256..40580ce34 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 @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; + +import com.ruoyi.project.system.role.domain.Role; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.ruoyi.common.constant.UserConstants; @@ -60,6 +62,25 @@ public class DeptServiceImpl implements IDeptService return trees; } + /** + * 根据角色ID查询部门(数据权限) + * + * @param role 角色对象 + * @return 部门列表(数据权限) + */ + @Override + public List> roleDeptTreeData(Role role) { + Long roleId = role.getRoleId(); + List> trees = new ArrayList>(); + List deptList=deptMapper.selectDeptAll(); + if(StringUtils.isNotNull(roleId)){ + // List roleDeptList=deptMapper. + }else { + + } + return null; + } + /** * 查询部门人数 * diff --git a/src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java b/src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java index b8d833304..101e2341e 100644 --- a/src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java +++ b/src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import com.ruoyi.project.system.dept.domain.Dept; +import com.ruoyi.project.system.role.domain.Role; /** * 部门管理 服务层 @@ -26,6 +27,14 @@ public interface IDeptService */ public List> selectDeptTree(); + /** + * 根据角色ID查询菜单 + * + * @param role 角色对象 + * @return 菜单列表 + */ + public List> roleDeptTreeData(Role role); + /** * 查询部门人数 * diff --git a/src/main/java/com/ruoyi/project/system/role/domain/Role.java b/src/main/java/com/ruoyi/project/system/role/domain/Role.java index b175d8a11..f32f06248 100644 --- a/src/main/java/com/ruoyi/project/system/role/domain/Role.java +++ b/src/main/java/com/ruoyi/project/system/role/domain/Role.java @@ -38,6 +38,8 @@ public class Role extends BaseEntity private boolean flag = false; /** 菜单组 */ private Long[] menuIds; + /** 部门组(数据权限) */ + private Long[] deptIds; public Long getRoleId() { @@ -109,11 +111,19 @@ public class Role extends BaseEntity this.menuIds = menuIds; } + public Long[] getDeptIds() { + return deptIds; + } + + public void setDeptIds(Long[] deptIds) { + this.deptIds = deptIds; + } + @Override public String toString() { return "Role [roleId=" + roleId + ", roleName=" + roleName + ", roleKey=" + roleKey + ", roleSort=" + roleSort - + ", status=" + status + ", flag=" + flag + ", menuIds=" + Arrays.toString(menuIds) + "]"; + + ", status=" + status + ", flag=" + flag + ", menuIds=" + Arrays.toString(menuIds) + ", deptIds=" + Arrays.toString(deptIds)+ "]"; } } diff --git a/src/main/java/com/ruoyi/project/system/role/service/RoleServiceImpl.java b/src/main/java/com/ruoyi/project/system/role/service/RoleServiceImpl.java index d9be9d51f..a634609f5 100644 --- a/src/main/java/com/ruoyi/project/system/role/service/RoleServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/role/service/RoleServiceImpl.java @@ -5,6 +5,9 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; + +import com.ruoyi.project.system.role.domain.RoleDept; +import com.ruoyi.project.system.role.mapper.RoleDeptMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.constant.UserConstants; @@ -35,6 +38,9 @@ public class RoleServiceImpl implements IRoleService @Autowired private UserRoleMapper userRoleMapper; + @Autowired + private RoleDeptMapper roleDeptMapper; + /** * 根据条件分页查询角色数据 * @@ -166,6 +172,8 @@ public class RoleServiceImpl implements IRoleService roleMapper.updateRole(role); // 删除角色与菜单关联 roleMenuMapper.deleteRoleMenuByRoleId(roleId); + //删除角色与部门关联(数据权限) + roleDeptMapper.deleteRoleDeptByRoleId(roleId); } else { @@ -174,13 +182,15 @@ public class RoleServiceImpl implements IRoleService roleMapper.insertRole(role); } ShiroUtils.clearCachedAuthorizationInfo(); + //新增角色和部门信息(数据权限) + insertRoleDept(role); return insertRoleMenu(role); } /** * 新增角色菜单信息 * - * @param user 角色对象 + * @param role 角色对象 */ public int insertRoleMenu(Role role) { @@ -201,6 +211,27 @@ public class RoleServiceImpl implements IRoleService return rows; } + /** + * 新增角色部门信息(数据权限) + * + * @param role 角色对象 + */ + public void insertRoleDept(Role role) + { + // 新增角色与部门(数据权限)管理 + List list = new ArrayList(); + for (Long deptId : role.getDeptIds()) + { + RoleDept rd = new RoleDept(); + rd.setRoleId(role.getRoleId()); + rd.setDeptId(deptId); + list.add(rd); + } + if (list.size() > 0) + { + roleDeptMapper.batchRoleDept(list); + } + } /** * 校验角色名称是否唯一 * diff --git a/src/main/resources/mybatis/system/DeptMapper.xml b/src/main/resources/mybatis/system/DeptMapper.xml index 35f81dbee..4110619d5 100644 --- a/src/main/resources/mybatis/system/DeptMapper.xml +++ b/src/main/resources/mybatis/system/DeptMapper.xml @@ -24,6 +24,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select t.dept_id, t.parent_id, t.dept_name, t.order_num, t.leader, t.phone, t.email, t.status, t.create_by, t.create_time from sys_dept t + + diff --git a/src/main/resources/templates/system/role/edit.html b/src/main/resources/templates/system/role/edit.html index 18ab69fbc..a6bb0dc43 100644 --- a/src/main/resources/templates/system/role/edit.html +++ b/src/main/resources/templates/system/role/edit.html @@ -49,6 +49,12 @@ +
+ +
+
+
+
@@ -77,7 +83,25 @@ menuTrees = $.fn.zTree.init($("#menuTrees"), setting, data); //.expandAll(true); }, null, null, "正在加载,请稍后..."); };loadTree(); - + + // 部门(数据权限)树结构初始化加载 + var deptsetting = { + check:{enable:true,nocheckInherit:true,chkboxType:{"Y":"ps","N":"ps"}}, + view:{selectedMulti:false,nameIsHTML: true}, + data:{simpleData:{enable:true},key:{title:"title"}}, + callback:{ + beforeClick: function (treeId, treeNode, clickFlag) { + var deptTrees = $.fn.zTree.getZTreeObj(treeId); + deptTrees.checkNode(treeNode, !treeNode.checked, true, true); + return false; + } + } + }, deptTrees, loadTree = function(){ + $.get(ctx + "system/menu/roleMenuTreeData?roleId=" + $("#roleId").val(), function(data) { + deptTrees = $.fn.zTree.init($("#deptTrees"), deptsetting, data); //.expandAll(true); + }, null, null, "正在加载,请稍后..."); + };loadTree(); + $("#form-role-edit").validate({ rules:{ roleName:{