From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 01 四月 2025 16:03:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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