无关风月
2024-06-17 a21227a6397de66fcdd988432d00dfe608d76999
报错
1个文件已修改
74 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.controller;
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.text.Convert;
@@ -32,6 +33,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
@@ -172,43 +174,51 @@
    @GetMapping("/roleInfoFromUserId")
    public AjaxResult<List<SysMenus>> roleInfoFromUserId( @RequestParam Long userId)
    {
        SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
        Long id =one.getRoleId();
        // 获取当前角色的菜单id
        List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
        // 获取所有菜单ids
        List<Long> menusId1 = menuMapper.selectList(new LambdaQueryWrapper<SysMenu>()).stream().map(SysMenu::getMenuId).collect(Collectors.toList());
        System.err.println("进入");
        try {
            SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
            Long id =one.getRoleId();
            // 获取当前角色的菜单id
            List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList());
            // 获取所有菜单ids
            List<Long> menusId1 = menuMapper.selectList(new LambdaQueryWrapper<SysMenu>()).stream().map(SysMenu::getMenuId).collect(Collectors.toList());
        if(CollectionUtils.isEmpty(menusId)){
            return AjaxResult.success(new ArrayList<>());
        }
        //获取所有的权限菜单
        List<SysMenus> all = menuMapper.getAllInIds(menusId1);
        for (SysMenus sysMenus : all) {
            if (menusId.contains(sysMenus.getMenuId())){
                sysMenus.setIsHave(1);
            }else{
                sysMenus.setIsHave(2);
            if(CollectionUtils.isEmpty(menusId)){
                return AjaxResult.success(new ArrayList<>());
            }
        }
        // 第三级
        List<SysMenus> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList());
        // 第二级
        List<SysMenus> s2 = all.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList());
        // 第一级
        List<SysMenus> s1 = all.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList());
        for (SysMenus menus : s2) {
            List<SysMenus> collect = s3.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList());
            menus.setChildren(collect);
        }
            //获取所有的权限菜单
            List<SysMenus> all = menuMapper.getAllInIds(menusId1);
            for (SysMenus sysMenus : all) {
                if (menusId.contains(sysMenus.getMenuId())){
                    sysMenus.setIsHave(1);
                }else{
                    sysMenus.setIsHave(2);
                }
            }
            // 第三级
            List<SysMenus> s3 = all.stream().filter(e -> e.getMenuType().equals("F")).collect(Collectors.toList());
            // 第二级
            List<SysMenus> s2 = all.stream().filter(e -> e.getMenuType().equals("C")).collect(Collectors.toList());
            // 第一级
            List<SysMenus> s1 = all.stream().filter(e -> e.getMenuType().equals("M")).collect(Collectors.toList());
        for (SysMenus menus : s1) {
            List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList());
            menus.setChildren(collect);
            for (SysMenus menus : s2) {
                List<SysMenus> collect = s3.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList());
                menus.setChildren(collect);
            }
            for (SysMenus menus : s1) {
                List<SysMenus> collect = s2.stream().filter(e -> e.getParentId().equals(menus.getMenuId())).collect(Collectors.toList());
                menus.setChildren(collect);
            }
            return AjaxResult.success(s1);
        }catch (Exception e){
            System.err.println("捕获");
            e.printStackTrace();
        }
        return AjaxResult.success(s1);
        return AjaxResult.success();
    }