From 2bb5d47275effc59de3377ce53e9b9cbf07b781a Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期五, 26 一月 2024 11:05:59 +0800
Subject: [PATCH] 海恒bug修改
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysMenuServiceImpl.java | 101 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 94 insertions(+), 7 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysMenuServiceImpl.java
index fd8a9d1..45d15b0 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysMenuServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysMenuServiceImpl.java
@@ -14,9 +14,10 @@
import com.ruoyi.system.mapper.sys.SysRoleMapper;
import com.ruoyi.system.mapper.sys.SysRoleMenuMapper;
import com.ruoyi.system.service.sys.ISysMenuService;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.ruoyi.system.service.sys.ISysUserService;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -30,14 +31,19 @@
{
public static final String PREMISSION_STRING = "perms[\"{0}\"]";
- @Autowired
+ @Resource
private SysMenuMapper menuMapper;
- @Autowired
+ @Resource
private SysRoleMapper roleMapper;
- @Autowired
+ @Resource
private SysRoleMenuMapper roleMenuMapper;
+
+ @Resource
+ private ISysUserService sysUserService;
+
+
/**
* 根据用户查询系统菜单列表
@@ -50,6 +56,21 @@
{
return selectMenuList(new SysMenu(), userId);
}
+
+ /**
+ * 根据用户查询系统菜单列表
+ *
+ * @param userId 用户ID
+ * @return 菜单列表
+ */
+ @Override
+ public List<SysMenu> selectDeptMenuList(Long userId){
+ SysUser sysUser = sysUserService.selectUserById(userId);
+ Long deptId = sysUser.getDeptId();
+ List<SysMenu> menuList = menuMapper.selectDeptMenuList(deptId);
+ return menuList;
+ }
+
/**
* 根据用户查询系统菜单列表
*
@@ -59,6 +80,19 @@
@Override
public List<SysMenu> selectStaffMenuList(Long userId){
return selectStaffMenuList(new SysMenu(), userId);
+ }
+
+ /**
+ * 根据用户查询系统菜单列表
+ *
+ * @param userId 用户ID
+ * @return 菜单列表
+ */
+ @Override
+ public List<SysMenu> selectStaffDeptMenuList(Long userId){
+ SysUser sysUser = sysUserService.selectUserById(userId);
+ Long deptId = sysUser.getDeptId();
+ return menuMapper.selectStaffDeptMenuList(deptId);
}
/**
* 查询系统菜单列表
@@ -78,7 +112,13 @@
else
{
menu.getParams().put("userId", userId);
- menuList = menuMapper.selectMenuListByUserId(menu);
+ SysUser sysUser = sysUserService.selectUserById(userId);
+ if(sysUser.getUserName().equals("admin")||sysUser.getUserName().equals("hongruitang")){
+ menuList = menuMapper.selectMenuListByUserId(menu);
+ }else{
+ menuList = menuMapper.selectMenuListByStaffUserId(menu);
+ }
+
}
return menuList;
}
@@ -115,7 +155,35 @@
@Override
public Set<String> selectMenuPermsByUserId(Long userId)
{
- List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
+ SysUser sysUser = sysUserService.selectUserById(userId);
+ List<String> perms = null;
+ if(sysUser.getUserName().equals("admin")||sysUser.getUserName().equals("hongruitang")){
+ perms = menuMapper.selectMenuPermsByUserId(userId);
+ }else{
+ perms = menuMapper.selectMenuPermsByStaffUserId(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 userId 用户ID
+ * @return 权限列表
+ */
+ @Override
+ public Set<String> selectStaffClientMenuPermsByUserId(Long userId){
+ SysUser sysUser = sysUserService.selectUserById(userId);
+ List<String> perms = null;
+ perms = menuMapper.selectStaffClientMenuPermsByStaffUserId(userId);
Set<String> permsSet = new HashSet<>();
for (String perm : perms)
{
@@ -162,9 +230,28 @@
{
menus = menuMapper.selectMenuTreeAll();
}
- else
+ else if(userId.equals(1L)||userId.equals(2L))
{
menus = menuMapper.selectMenuTreeByUserId(userId);
+ }else{
+ menus = menuMapper.selectStaffMenuTreeByUserId(userId);
+ }
+ return getChildPerms(menus, 0);
+ }
+
+ @Override
+ public List<SysMenu> selectStaffMenuTreeByUserId(Long userId)
+ {
+ List<SysMenu> menus = null;
+ if (SecurityUtils.isAdmin(userId))
+ {
+ menus = menuMapper.selectStaffClientMenuTreeAll();
+ }
+ else if(userId.equals(1L)||userId.equals(2L))
+ {
+ menus = menuMapper.selectStaffClientMenuTreeByUserId(userId);
+ }else{
+ menus = menuMapper.selectStaffClientStaffMenuTreeByUserId(userId);
}
return getChildPerms(menus, 0);
}
--
Gitblit v1.7.1