自己写service----> 传入map(idsql,rssql,prior) idsql 查询id rssql 查询结果集 调用 以下方法
@param ids 要查询的起始 start with * @param allres 包含要递归数据的结果集 ( 查询时别名ID PID ) * @param pos prior---> UP or DOWN * @return */ public static List<Map<String, Object>> getTree(ArrayList<String> ids, List<Map<String, Object>> allres,String pos) { List<Map<String, Object>> res=new ArrayList<Map<String,Object>>();
if("up".equals(pos)){ res=toCreatTreeUp(ids,allres,res); } if("down".equals(pos)){ res=toCreatTreeDown(ids,allres,res); } return res; } private static List<Map<String, Object>> toCreatTreeUp(ArrayList<String> ids, List<Map<String, Object>> allres,List<Map<String, Object>> res) { ArrayList<String> idss = new ArrayList<String>(); for(String id :ids){ for (Map<String, Object> map : allres) { if(id.equals(map.get("ID").toString())){ idss.add(map.get("PID").toString()); res.add(map); } } } if (idss.size()!=0) { ids = idss; res = toCreatTreeUp(ids,allres,res); } return res ; } private static List<Map<String, Object>> toCreatTreeDown(ArrayList<String> ids, List<Map<String, Object>> allres,List<Map<String, Object>> res) { ArrayList<String> idss = new ArrayList<String>(); for(String id :ids){ for (Map<String, Object> map : allres) { if(id.equals(map.get("ID").toString())){ res.add(map); } if(id.equals(map.get("PID").toString())){ idss.add(map.get("ID").toString()); } } } if (idss.size()!=0) { ids = idss; res = toCreatTreeDown(ids,allres,res); } return res ; }
转载于:https://www.cnblogs.com/sx2zx/p/6229260.html
