使用递归的方式删除菜单

简介: 使用递归的方式删除菜单
//递归删除菜单
@Override
public void removeChildByIdGuli(String id) {
    //创建list集合,用于封装所有删除菜单的id值
    List<String> idList = new ArrayList<>();
    //向idList集合设置删除菜单id
    this.selectPermissionChildById(id,idList);
    //把当前id封装到id里面
    idList.add(id);
    baseMapper.deleteBatchIds(idList);
}
//根据当前菜单id,查询菜单里面子菜单id,封装到list集合中
private void selectPermissionChildById(String id,List<String> idList) {
    //查询菜单里的子id
    QueryWrapper<Permission> wrapper = new QueryWrapper<>();
    wrapper.eq("pid",id);
    wrapper.select("id");
    List<Permission> childIdList = baseMapper.selectList(wrapper);
    //childIdList里面菜单id值获取出来,封装到idList里面,并且要做递归的操作
    childIdList.stream().forEach(item -> {
         //封装idList里面去
        idList.add(item.getId());
        //递归查询
        this.selectPermissionChildById(item.getId(), idList);
    });
}

给角色分配权限

//给角色分配菜单(权限)
    @Override
    public void saveRolePermissionRealtionShipGuli(String roleId, String[] permissionId) {
        //创建一个list集合用于最后封装添加数据
        List<RolePermission> rolePermissionList = new ArrayList<>();
        //遍历所有的菜单数组
        for (String perId : permissionId) {
            RolePermission rolePermission = new RolePermission();
            rolePermission.setRoleId(roleId);
            rolePermission.setPermissionId(perId);
            //封装到list集合
            rolePermissionList.add(rolePermission);
        }
        //添加到角色菜单关系表
        rolePermissionService.saveBatch(rolePermissionList);
    }
相关文章
|
6天前
|
Android开发
Settings中动态插入菜单
Settings中动态插入菜单
12 0
|
6天前
|
微服务
【若依】 若依框架 删除左侧无用菜单报错 ‘菜单已分配,不允许删除’
【若依】 若依框架 删除左侧无用菜单报错 ‘菜单已分配,不允许删除’
49 2
|
6月前
|
JSON JavaScript 数据格式
Elementui Tree 树形控件,将勾选选中的值放在list集合里面提交
Elementui Tree 树形控件,将勾选选中的值放在list集合里面提交
41 1
|
6月前
|
小程序 JavaScript
小程序循环列表删除当前选中列表的方法
小程序循环列表删除当前选中列表的方法
78 0
|
6月前
|
前端开发
后台添加菜单信息如何在前端循环遍历?
后台添加菜单信息如何在前端循环遍历?
26 0
Word进行自动生成目录右边页面等格操作简单详细方法
Word进行自动生成目录右边页面等格操作简单详细方法
141 0
Word进行自动生成目录右边页面等格操作简单详细方法
|
数据安全/隐私保护 开发者 微服务
权限管理-查询所有菜单(递归) | 学习笔记
快速学习 权限管理-查询所有菜单(递归)
67 0
|
索引
删除列表中的元素,文章中含有源码
删除列表中的元素,文章中含有源码
75 0
删除列表中的元素,文章中含有源码
|
JavaScript 前端开发
Cypress系列(16)- 查找页面元素的基本方法
Cypress系列(16)- 查找页面元素的基本方法
473 0
Cypress系列(16)- 查找页面元素的基本方法