javaweb递归删除子节点

需求:点击删除父节点,其对应的子节点也跟着删除。

serviceImpl 业务逻辑代码:

@Override
    public void deleteMenuById(SysMenu menu) {
          
   
          List<String> deletedIds  = new ArrayList<String>();
           deletedIds.add(menu.getId());
           //执行批量删除
           findSubNode(deletedIds,menu.getId());
           this.deleteByIds(menu,deletedIds);
    }

    @Override
    public void findSubNode(List<String> deletedIds, String id) {
          
   
        SysMenu  sysMenu = new  SysMenu ();
        sysMenu.setParentId(id);
          //查询当前分类子目录
        List<SysMenu>  list = this.mapper.selectByPid(sysMenu);
          for (SysMenu  sysMenu2 :list){
          
   
              //把子类id放入集合中
              deletedIds.add(sysMenu2.getId());
              findSubNode(deletedIds,sysMenu2.getId());
        }
    }
    
    @Override
    public void deleteByIds(SysMenu sysMenu,List<String> ids) {
          
   
        this.mapper.deleteByIds(sysMenu,ids);
    }
经验分享 程序员 微信小程序 职场和发展