递归查询级联和反递归遍历取id

来源:互联网 发布:肯尼迪 知乎 编辑:程序博客网 时间:2024/06/06 12:23
//全局静态变量放idprivate static final List<Integer> subids = new ArrayList<Integer>();//修改和级联删除接口@RequestMapping("cascade")    public ModelAndView cascadeType(Integer menuid){        ModelAndView mav=new ModelAndView();        try {             List<AiThesaurusTypePo> li=aiThesaurusTypeService.listAllMenu(menuid);             if(null!=li&&li.size()>0){                 System.out.println(getSubIdList(li));                 subids.clear();             }        } catch (Exception e) {            e.printStackTrace();        }        return mav;    }//调用递归查询某目录下的子目录 AiThesaurusTypePo,现成的有。    @Override    public List<AiThesaurusTypePo> listAllMenu(Integer menuID) throws Exception {        AiThesaurusTypeExample example = new AiThesaurusTypeExample();        example.createCriteria().andStateEqualTo((byte)1).andParentIdEqualTo(menuID);        List<AiThesaurusType> tempMenuList = thesaurusTypeMapper.selectByExample(example);        List<AiThesaurusTypePo> menuList = new ArrayList<AiThesaurusTypePo>();//封装菜单;        if(null!=tempMenuList&&tempMenuList.size()>0){            for(AiThesaurusType menu:tempMenuList){                AiThesaurusTypePo menupo = new AiThesaurusTypePo();                menupo.setMENU_ID(String.valueOf(menu.getId()));                menupo.setSubMenu(this.listAllMenu(menu.getId()));                menuList.add(menupo);            }        }        return menuList;    }//反递归遍历层叠的listpublic List<Integer> getSubIdList(List<AiThesaurusTypePo> li){    for(AiThesaurusTypePo typePo:li){        subids.add(Integer.parseInt(typePo.getMENU_ID()));        this.getSubIdList(typePo.getSubMenu());    }    return subids;}