首页 > 其他分享 >角色权限树

角色权限树

时间:2023-03-30 23:14:21浏览次数:40  
标签:cmsCategoryQueryWrapper 角色 list cmsCategories List result import 权限

https://www.cnblogs.com/interface-/p/17160898.html

https://blog.csdn.net/chengqiuming/article/details/106042148

package com.wlc.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wlc.mapper.CmsCategoryMapper;
import com.wlc.service.CmsCategoryService;
import com.wlc.vo.CmsCategory;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author 王立朝
 * @date 2023/3/30
 * @description:
 */
@Service
public class CmsCategoryServiceImpl implements CmsCategoryService {

    @Resource
    private CmsCategoryMapper cmsCategoryMapper;

    @Override
    public List<CmsCategory> findMenu3() {
        QueryWrapper<CmsCategory> cmsCategoryQueryWrapper = new QueryWrapper<>();
        // 查询顶级菜单
        cmsCategoryQueryWrapper.eq("category_id","");
        List<CmsCategory> cmsCategories = cmsCategoryMapper.selectList(cmsCategoryQueryWrapper);
        if (cmsCategories != null && cmsCategories.size() > 0) {
            cmsCategories.forEach(this::findAllChild);
        }
        return cmsCategories;
    }



    public void findAllChild(CmsCategory cmsCategory) {
        QueryWrapper<CmsCategory> cmsCategoryQueryWrapper = new QueryWrapper<>();
        // 查询顶级菜单
        cmsCategoryQueryWrapper.eq("category_id", cmsCategory.getId());
        List<CmsCategory> cmsCategories = cmsCategoryMapper.selectList(cmsCategoryQueryWrapper);
        cmsCategory.setChildMenu(cmsCategories);

        if (cmsCategories != null && cmsCategories.size() > 0) {
            cmsCategories.forEach(this::findAllChild);
        }
    }

    
    public void findAllChild2(CmsCategory cmsCategory) {
        QueryWrapper<CmsCategory> cmsCategoryQueryWrapper = new QueryWrapper<>();
        // 查询顶级菜单
        cmsCategoryQueryWrapper.eq("leaf","0");
        List<CmsCategory> cmsCategories = cmsCategoryMapper.selectList(cmsCategoryQueryWrapper);
        // 排除掉 顶级菜单
        List<CmsCategory> collect = cmsCategories.stream().filter(e -> !e.getCategoryId().equals("")).collect(Collectors.toList());

        cmsCategory.setChildMenu(collect);
        if (collect != null && collect.size() > 0) {
            collect.forEach(this::findAllChild);
        }


    }

    @Override
    public List<CmsCategory> findMenu2() {
        //数据查询
        List<CmsCategory> list = cmsCategoryMapper.selectList(new QueryWrapper());
        //新建一个用于接收数据的list
        List<CmsCategory> resultList = new ArrayList<>();
        for (CmsCategory result : list) {
            if (result.getCategoryId() == null) {
                resultList.add(getMenuTree(result, list));
            }
            if (result.getLeaf().equals("0")) {
                //调用方法给子类添加数据
                resultList.add(getMenuTree(result, list));
            }
        }
        return resultList;
    }

    private CmsCategory getMenuTree(CmsCategory result, List<CmsCategory> list) {
        for (CmsCategory menu : list) {
            //如果父类主键等于传过来实体类的ID
            if (menu.getCategoryId() == result.getId()) {
                if (result.getChildMenu() == null) {
                    result.setChildMenu(new ArrayList<>());
                }
                // 递归调用
                result.getChildMenu().add(getMenuTree(menu, list));
            }
        }
        return result;
    }
}

 

标签:cmsCategoryQueryWrapper,角色,list,cmsCategories,List,result,import,权限
From: https://www.cnblogs.com/wanglichaoya/p/17274727.html

相关文章

  • docker build 构建时 alpinelinux 镜像权限错误
    问题使用dockerbuild构建镜像时,发生一个错误:“ERROR:https://dl-cdn.alpinelinux.org/alpine/v3.15/main:Permissiondenied”。部分日志如下:[2023-03-3014:51:12]Step3/16:RUNapkupdate&&apkupgrade&&apkaddmusl-devmakegccpython3[2023-03-3014:51:12......
  • 关于开-关机以及重启-EC2-instance-所需要的最小的权限-Policies写法
    如果在aws中,如果需要赋予用户/组,或者是role权限,让其拥有对EC2实例进行开机、关机、重启的操作一般来说是需要如下几条权限的,重启,开机和关机但是这样,我们可能有时还会遇......
  • 让apache用户拥有root权限
    由于php用户默认以apache用户运行,这就可能导致上传图片或者创建文件权限不足的问题,虽然可以chown-Rapache:apache文件夹 永久做法:修改/etc/sudoers文件,快捷命令为v......
  • 第6章 Linux的档案权限与目录管理
    一、使用者与群组1、档案拥有者由于Linux是个多人多任务的系统,常常可能有多人同时使用这部主机来进行工作,为了考虑每个人的隐私以及每个人喜好的工作环境而建立档案......
  • 若依框架-Vue实用框架(权限控制和页面渲染)(四)
    Vue实用框架(权限控制和页面渲染)路由的组成前端token获取那一步中有一块内容,只是简单提了一下,但其实实际涉及到的内容很多: 用户信息的获取第一步的GetInfo后端接口不......
  • Django用户权限通过Token校验
    最好是将用户权限验证和Token验证放在Django中间件中,以便对所有视图函数进行校验。下面是一段示例代码,演示了如何实现中间件来进行用户权限验证和Token验证middleware.py......
  • 一行代码搞定Android 6.0动态权限申请
    1、前言从Android6.0(API23)开始,对系统权限做了很大的改变。在之前用户安装APP前,只是把APP需要使用的权限列出来给用户告知一下,APP安装后都可以访问这些权限。从6.0开始,一......
  • UE5 旋转相机视角到角色正前方(增强输入)
    引擎第三人称游戏模板的默认相机位于角色正后方,如希望可以将相机旋转到角色正前方(从而能从正面观察到我们的角色),修改设置如下: ......
  • Linux基础第四章:用户账户与文件、目录的权限和归属
    一、用户账户1、账户类型①超级管理员:最高权限拥有者,uid=0的用户,默认是root。②普通用户:有一定权限的用户,但是权限受限制。③系统(程序)用户:不是给人用的,是给程序用的,无......
  • 13.Linux权限提升与维持
    Linux权限提升与维持目录Linux权限提升与维持Linux权限提升(PrivilegeEscalation)1、内核漏洞提权2、SUDO提权3、SUID提权3、第三方服务提权4、提权辅助脚本Linux权限维持1......