SysMenuServiceImpl.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.ruoyi.system.service.impl;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.HashSet;
  5. import java.util.Iterator;
  6. import java.util.LinkedList;
  7. import java.util.List;
  8. import java.util.Set;
  9. import java.util.stream.Collectors;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import com.ruoyi.common.constant.UserConstants;
  13. import com.ruoyi.common.core.domain.TreeSelect;
  14. import com.ruoyi.common.core.domain.entity.SysMenu;
  15. import com.ruoyi.common.core.domain.entity.SysRole;
  16. import com.ruoyi.common.core.domain.entity.SysUser;
  17. import com.ruoyi.common.utils.SecurityUtils;
  18. import com.ruoyi.common.utils.StringUtils;
  19. import com.ruoyi.system.domain.vo.MetaVo;
  20. import com.ruoyi.system.domain.vo.RouterVo;
  21. import com.ruoyi.system.mapper.SysMenuMapper;
  22. import com.ruoyi.system.mapper.SysRoleMapper;
  23. import com.ruoyi.system.mapper.SysRoleMenuMapper;
  24. import com.ruoyi.system.service.ISysMenuService;
  25. /**
  26. * 菜单 业务层处理
  27. *
  28. * @author ruoyi
  29. */
  30. @Service
  31. public class SysMenuServiceImpl implements ISysMenuService {
  32. /**
  33. * 根据用户查询系统菜单列表
  34. *
  35. * @param userId 用户ID
  36. * @return 菜单列表
  37. */
  38. @Override
  39. public List<SysMenu> selectMenuList(Long userId) {
  40. return selectMenuList(new SysMenu(), userId);
  41. }
  42. /**
  43. * 查询系统菜单列表
  44. *
  45. * @param menu 菜单信息
  46. * @return 菜单列表
  47. */
  48. @Override
  49. public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
  50. List<SysMenu> menuList = null;
  51. // 管理员显示所有菜单信息
  52. if (SysUser.isAdmin(userId)) {
  53. menuList = menuMapper.selectMenuList(menu);
  54. } else {
  55. menu.getParams().put("userId", userId);
  56. menuList = menuMapper.selectMenuListByUserId(menu);
  57. }
  58. return menuList;
  59. }
  60. /**
  61. * 根据用户ID查询权限
  62. *
  63. * @param userId 用户ID
  64. * @return 权限列表
  65. */
  66. @Override
  67. public Set<String> selectMenuPermsByUserId(Long userId) {
  68. List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
  69. Set<String> permsSet = new HashSet<>();
  70. for (String perm : perms) {
  71. if (StringUtils.isNotEmpty(perm)) {
  72. permsSet.addAll(Arrays.asList(perm.trim().split(",")));
  73. }
  74. }
  75. return permsSet;
  76. }
  77. /**
  78. * 根据用户ID查询菜单
  79. *
  80. * @param userId 用户名称
  81. * @return 菜单列表
  82. */
  83. @Override
  84. public List<SysMenu> selectMenuTreeByUserId(Long userId) {
  85. List<SysMenu> menus = null;
  86. if (SecurityUtils.isAdmin(userId)) {
  87. menus = menuMapper.selectMenuTreeAll();
  88. } else {
  89. menus = menuMapper.selectMenuTreeByUserId(userId);
  90. }
  91. return getChildPerms(menus, 0);
  92. }
  93. }