开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):权限管理-删除菜单】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11529
权限管理-删除菜单
目录:
一、什么是递归删除菜单
二、创建
三、实现
四、检测
一、什么是递归删除菜单
为了效果明显,先增加不相关的菜单,为了删除它,需要进行操作。当删除一个菜单时,需要把它的子菜单也删除。这就叫做递归删除菜单。
二、创建
@ApiOperation(value="递归删除菜单”)
@DeleteMapping("remove/(id”)
public R remove(@PathVariable String id) I
permissionService.removeChildById(id)
return R.ok();
三、实现
递归删除菜单
@Override
public void removeChildByIdGuli(String id)f
//1创建 1ist 集合,用于封装所有删除菜单 id 值
List<String>idList = new ArrayList<>O:
//2 向 idList 集合设置删除菜单 id
this.selectPermissionChildById(id,idList):
baseMapper.deleteBatchIds(idList);
//2 根据当前菜单 id,查询菜单里面子菜单 id,封装到 list 集合
private void selectPermissionChildById(String id, List<String> idList)
//查询菜单里面子菜单 id
QueryWrapper<Permission> wrapper = new QueryWrapper<>(); wrapper.eq( column:"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.gefId(),idList);
四、检测
如果说操作正确,那么这些菜单都将被删掉。
先启动服务,现在来到s wagger,找到 remove id,传递菜单,现在点击 try it out,最终显示成功:
success true,
code
:20000
message
“成功”,
data"