From afa0dbb4f54e7244835dd67ec33c3e545f122f71 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 17 一月 2025 16:40:43 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysMenuServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 151 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 71abcfe..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; + + /** * 根据用户查询系统菜单列表 @@ -51,6 +57,43 @@ 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; + } + + /** + * 根据用户查询系统菜单列表 + * + * @param userId 用户ID + * @return 菜单列表 + */ + @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); + } /** * 查询系统菜单列表 * @@ -69,7 +112,36 @@ 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; + } + + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @param userId 用户ID + * @return 菜单列表 + */ + @Override + public List<SysMenu> selectStaffMenuList(SysMenu menu, Long userId){ + List<SysMenu> menuList = null; + // 管理员显示所有菜单信息 + if (SysUser.isAdmin(userId)) + { + menuList = menuMapper.selectStaffMenuList(menu); + } + else + { + menu.getParams().put("userId", userId); + menuList = menuMapper.selectStaffMenuListByUserId(menu); } return menuList; } @@ -83,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) { @@ -130,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); } @@ -164,16 +283,41 @@ /** * @description selectMenuListByDeptId + * @param deptId + * @return List<SysMenu> + * @author jqs34 + * @date 2023/6/18 19:13 + */ + @Override + public List<Long> selectStaffMenuListByDeptId(Long deptId){ + return menuMapper.selectStaffMenuListByDeptId(deptId, true); + } + + /** + * @description selectMenuListByDeptId * @param deptUserId * @return List<SysMenu> * @author jqs34 * @date 2023/6/18 19:13 */ + @Override public List<Long> selectMenuListByDeptUserId(Long deptUserId){ return menuMapper.selectMenuListByDeptUserId(deptUserId, true); } /** + * @description selectMenuListByDeptId + * @param deptUserId + * @return List<SysMenu> + * @author jqs34 + * @date 2023/6/18 19:13 + */ + @Override + public List<Long> selectStaffMenuListByDeptUserId(Long deptUserId){ + return menuMapper.selectStaffMenuListByDeptUserId(deptUserId, true); + } + + /** * 构建前端路由所需要的菜单 * * @param menus 菜单列表 -- Gitblit v1.7.1