From d3236682503cd0e7a316babaadbdbc2ca35e576f Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期三, 05 六月 2024 12:39:38 +0800
Subject: [PATCH] 优化数据权限代码
---
src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java | 43 ++++++++++++++++++++++++++++++-------------
1 files changed, 30 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 7946f97..379323c 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
@@ -37,7 +37,7 @@
@Autowired
private SysMenuMapper menuMapper;
-
+
@Autowired
private SysRoleMapper roleMapper;
@@ -89,6 +89,27 @@
public Set<String> selectMenuPermsByUserId(Long userId)
{
List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
+ Set<String> permsSet = new HashSet<>();
+ for (String perm : perms)
+ {
+ if (StringUtils.isNotEmpty(perm))
+ {
+ permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+ }
+ }
+ return permsSet;
+ }
+
+ /**
+ * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺
+ *
+ * @param roleId 瑙掕壊ID
+ * @return 鏉冮檺鍒楄〃
+ */
+ @Override
+ public Set<String> selectMenuPermsByRoleId(Long roleId)
+ {
+ List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
Set<String> permsSet = new HashSet<>();
for (String perm : perms)
{
@@ -154,7 +175,7 @@
router.setQuery(menu.getQuery());
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
List<SysMenu> cMenus = menu.getChildren();
- if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
+ if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
{
router.setAlwaysShow(true);
router.setRedirect("noRedirect");
@@ -202,11 +223,7 @@
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());
- }
+ List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();)
{
SysMenu menu = (SysMenu) iterator.next();
@@ -318,7 +335,7 @@
* @return 缁撴灉
*/
@Override
- public String checkMenuNameUnique(SysMenu menu)
+ public boolean checkMenuNameUnique(SysMenu menu)
{
Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
@@ -458,8 +475,8 @@
/**
* 閫掑綊鍒楄〃
*
- * @param list
- * @param t
+ * @param list 鍒嗙被琛�
+ * @param t 瀛愯妭鐐�
*/
private void recursionFn(List<SysMenu> list, SysMenu t)
{
@@ -504,11 +521,11 @@
/**
* 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲
*
- * @return
+ * @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕
*/
public String innerLinkReplaceEach(String path)
{
- return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS },
- new String[] { "", "" });
+ return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" },
+ new String[] { "", "", "", "/", "/" });
}
}
--
Gitblit v1.9.3