From a56704036837f6064417744a690acc2984df0a76 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期六, 19 九月 2020 13:26:02 +0800
Subject: [PATCH] 菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)
---
src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java | 31 ++++++++++++++++++-------------
1 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java
index e5dda00..b473b44 100644
--- a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java
@@ -15,10 +15,12 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.web.domain.TreeSelect;
import com.ruoyi.project.system.domain.SysMenu;
+import com.ruoyi.project.system.domain.SysRole;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.domain.vo.MetaVo;
import com.ruoyi.project.system.domain.vo.RouterVo;
import com.ruoyi.project.system.mapper.SysMenuMapper;
+import com.ruoyi.project.system.mapper.SysRoleMapper;
import com.ruoyi.project.system.mapper.SysRoleMenuMapper;
import com.ruoyi.project.system.service.ISysMenuService;
@@ -34,6 +36,9 @@
@Autowired
private SysMenuMapper menuMapper;
+
+ @Autowired
+ private SysRoleMapper roleMapper;
@Autowired
private SysRoleMenuMapper roleMenuMapper;
@@ -124,7 +129,8 @@
@Override
public List<Integer> selectMenuListByRoleId(Long roleId)
{
- return menuMapper.selectMenuListByRoleId(roleId);
+ SysRole role = roleMapper.selectRoleById(roleId);
+ return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
}
/**
@@ -178,14 +184,19 @@
public List<SysMenu> buildMenuTree(List<SysMenu> menus)
{
List<SysMenu> returnList = new ArrayList<SysMenu>();
+ List<Long> tempList = new ArrayList<Long>();
+ for (SysMenu dept : menus)
+ {
+ tempList.add(dept.getMenuId());
+ }
for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();)
{
- SysMenu t = (SysMenu) iterator.next();
- // 鏍规嵁浼犲叆鐨勬煇涓埗鑺傜偣ID,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
- if (t.getParentId() == 0)
+ SysMenu menu = (SysMenu) iterator.next();
+ // 濡傛灉鏄《绾ц妭鐐�, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
+ if (!tempList.contains(menu.getParentId()))
{
- recursionFn(menus, t);
- returnList.add(t);
+ recursionFn(menus, menu);
+ returnList.add(menu);
}
}
if (returnList.isEmpty())
@@ -406,13 +417,7 @@
{
if (hasChild(list, tChild))
{
- // 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
- Iterator<SysMenu> it = childList.iterator();
- while (it.hasNext())
- {
- SysMenu n = (SysMenu) it.next();
- recursionFn(list, n);
- }
+ recursionFn(list, tChild);
}
}
}
--
Gitblit v1.9.3