| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package com.ruoyi.system.service.impl;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.Set;
- import java.util.stream.Collectors;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.ruoyi.common.constant.UserConstants;
- import com.ruoyi.common.core.domain.TreeSelect;
- import com.ruoyi.common.core.domain.entity.SysMenu;
- import com.ruoyi.common.core.domain.entity.SysRole;
- import com.ruoyi.common.core.domain.entity.SysUser;
- import com.ruoyi.common.utils.SecurityUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.system.domain.vo.MetaVo;
- import com.ruoyi.system.domain.vo.RouterVo;
- import com.ruoyi.system.mapper.SysMenuMapper;
- import com.ruoyi.system.mapper.SysRoleMapper;
- import com.ruoyi.system.mapper.SysRoleMenuMapper;
- import com.ruoyi.system.service.ISysMenuService;
- /**
- * 菜单 业务层处理
- *
- * @author ruoyi
- */
- @Service
- public class SysMenuServiceImpl implements ISysMenuService {
- public static final String PREMISSION_STRING = "perms[\"{0}\"]";
- /**
- * 根据用户查询系统菜单列表
- *
- * @param userId 用户ID
- * @return 菜单列表
- */
- @Override
- public List<SysMenu> selectMenuList(Long userId) {
- return selectMenuList(new SysMenu(), userId);
- }
- /**
- * 查询系统菜单列表
- *
- * @param menu 菜单信息
- * @return 菜单列表
- */
- @Override
- public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
- List<SysMenu> menuList = null;
- // 管理员显示所有菜单信息
- if (SysUser.isAdmin(userId)) {
- menuList = menuMapper.selectMenuList(menu);
- } else {
- menu.getParams().put("userId", userId);
- menuList = menuMapper.selectMenuListByUserId(menu);
- }
- return menuList;
- }
- /**
- * 根据用户ID查询权限
- *
- * @param userId 用户ID
- * @return 权限列表
- */
- @Override
- 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 userId 用户名称
- * @return 菜单列表
- */
- @Override
- public List<SysMenu> selectMenuTreeByUserId(Long userId) {
- List<SysMenu> menus = null;
- if (SecurityUtils.isAdmin(userId)) {
- menus = menuMapper.selectMenuTreeAll();
- } else {
- menus = menuMapper.selectMenuTreeByUserId(userId);
- }
- return getChildPerms(menus, 0);
- }
- /**
- * 根据角色ID查询菜单树信息
- *
- * @param roleId 角色ID
- * @return 选中菜单列表
- */
- @Override
- public List<Integer> selectMenuListByRoleId(Long roleId) {
- SysRole role = roleMapper.selectRoleById(roleId);
- return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
- }
- /**
- * 查询菜单使用数量
- *
- * @param menuId 菜单ID
- * @return 结果
- */
- @Override
- public boolean checkMenuExistRole(Long menuId) {
- int result = roleMenuMapper.checkMenuExistRole(menuId);
- return result > 0 ? true : false;
- }
- }
|