更新数据权限基础1

This commit is contained in:
yangzhengze 2018-07-16 17:50:22 +08:00
parent eb72d42b77
commit a29a7abbda
5 changed files with 71 additions and 27 deletions

View File

@ -72,4 +72,12 @@ public interface DeptMapper
* @return 结果
*/
public Dept checkDeptNameUnique(String deptName);
/**
* 根据角色ID查询菜单
*
* @param roleId 角色ID
* @return 菜单列表
*/
public List<String> selectRoleDeptTree(Long roleId);
}

View File

@ -46,22 +46,11 @@ public class DeptServiceImpl implements IDeptService
{
List<Map<String, Object>> trees = new ArrayList<Map<String, Object>>();
List<Dept> deptList = deptMapper.selectDeptAll();
for (Dept dept : deptList)
{
if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()))
{
Map<String, Object> deptMap = new HashMap<String, Object>();
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<Map<String, Object>> roleDeptTreeData(Role role) {
Long roleId = role.getRoleId();
Long roleId=role.getRoleId();
List<Map<String, Object>> trees = new ArrayList<Map<String, Object>>();
List<Dept> deptList=deptMapper.selectDeptAll();
if(StringUtils.isNotNull(roleId)){
// List<String> roleDeptList=deptMapper.
List<String> 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<Map<String, Object>> getTrees(List<Dept> menuList, boolean isCheck, List<String> roleDeptList){
List<Map<String, Object>> trees = new ArrayList<Map<String, Object>>();
for (Dept dept : menuList)
{
if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()))
{
Map<String, Object> deptMap = new HashMap<String, Object>();
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;
}
/**
* 查询部门人数
*

View File

@ -108,7 +108,6 @@ public class MenuServiceImpl implements IMenuService
/**
* 查询所有菜单
*
* @param role 角色对象
* @return 菜单列表
*/
@Override

View File

@ -25,11 +25,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectRoleDeptTree" parameterType="Long" resultType="String">
select concat(m.menu_id, m.perms) as perms
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
where rm.role_id = #{roleId}
order by m.parent_id, m.order_num
select concat(d.dept_id, d.dept_name) as dept_name
from sys_dept d
left join sys_role_dept rd on d.dept_id = rd.dept_id
where rd.role_id = #{roleId}
order by d.parent_id, d.order_num
</select>
<select id="selectDeptAll" resultMap="DeptResult">

View File

@ -97,7 +97,7 @@
}
}
}, deptTrees, loadTree = function(){
$.get(ctx + "system/menu/roleMenuTreeData?roleId=" + $("#roleId").val(), function(data) {
$.get(ctx + "system/dept/roleDeptTreeData?roleId=" + $("#roleId").val(), function(data) {
deptTrees = $.fn.zTree.init($("#deptTrees"), deptsetting, data); //.expandAll(true);
}, null, null, "正在加载,请稍后...");
};loadTree();
@ -155,6 +155,19 @@
return menuIds;
}
function selectDeptCheckeds() {
var deptIds = "";
var treeNodes = deptTrees.getCheckedNodes(true);
for (var i = 0; i < treeNodes.length; i++) {
if (0 == i) {
deptIds = treeNodes[i].id;
} else {
deptIds += ("," + treeNodes[i].id);
}
}
return deptIds;
}
function edit() {
var roleId = $("input[name='roleId']").val();
var roleName = $("input[name='roleName']").val();
@ -163,6 +176,7 @@
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
var remark = $("input[name='remark']").val();
var menuIds = selectCheckeds();
var deptIds = selectDeptCheckeds();
$.ajax({
cache : true,
type : "POST",
@ -174,7 +188,8 @@
"roleSort": roleSort,
"status": status,
"remark": remark,
"menuIds": menuIds
"menuIds": menuIds,
"deptIds": deptIds
},
async : false,
error : function(request) {