public class TreeUtil { /** * pc菜单 - 递归得到子节点 * * @param pid 默认传递0 * @param pcMenuList 角色集合 */ public static List<Menu> getPcMehuNodeTree(String pid, List<Menu> pcMenuList) { List<Menu> newTreeDataList = new ArrayList<Menu>(); for (Menu pcMenu : pcMenuList) { //子节点 if (pcMenu.getParentid().equalsIgnoreCase(pid)) { //递归获取子节点下的子节点 pcMenu.setChildren(getPcMehuNodeTree(pcMenu.getId(), pcMenuList)); newTreeDataList.add(pcMenu); } } return newTreeDataList; } /** * pc菜单 - 格式化树结构 */ public static List<Map<String, Object>> formatPcMenuTree(List<Menu> list) { List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>(); for (Menu pcMenu : list) { Map<String, Object> result = new HashMap<String, Object>(); result.put("id", pcMenu.getId()); result.put("name", pcMenu.getName()); result.put("exeaddress", pcMenu.getExeaddress()); result.put("pId", pcMenu.getParentid()); result.put("code", pcMenu.getCode()); result.put("userid", pcMenu.getUserid()); result.put("number", pcMenu.getNumber()); result.put("sort", pcMenu.getSort()); result.put("open", "true"); if (pcMenu.getChildren().size() > 0) { result.put("children", formatPcMenuTree(pcMenu.getChildren())); } resultList.add(result); } return resultList; } /** * 菜单 - 格式化树结构 */ public static List<Map<String, Object>> formatMenuTree(List<Menu> list, List<Menu> rolelist) { List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>(); for (Menu pcMenu : list) { Map<String, Object> result = new HashMap<String, Object>(); for (Menu menu : rolelist) { if (menu.getId().equals(pcMenu.getId())) { result.put("checked", "true"); } List<Menu> mList = menu.getChildren(); for (Menu m : mList) { if (m.getId().equals(pcMenu.getId())) { result.put("checked", "true"); } } } result.put("id", pcMenu.getId()); result.put("name", pcMenu.getName()); result.put("exeaddress", pcMenu.getExeaddress()); result.put("pId", pcMenu.getParentid()); result.put("code", pcMenu.getCode()); result.put("userid", pcMenu.getUserid()); result.put("number", pcMenu.getNumber()); result.put("sort", pcMenu.getSort()); result.put("open", "true"); if (pcMenu.getChildren().size() > 0) { result.put("children", formatMenuTree(pcMenu.getChildren(), rolelist)); } resultList.add(result); } return resultList; } /** * pc菜单 - 封装根节点 */ public static Map<String, Object> rootPcMenuTree(List<Map<String, Object>> list) throws UnsupportedEncodingException { // String str = URLEncoder.encode("全部菜单", "UTF-8");//URLDecoder.decode(str, "UTF-8") return packagingRootTree(list, "全部菜单"); } /** * 实际执行封装根节点的方法 */ private static Map<String, Object> packagingRootTree(List<Map<String, Object>> list, String name) { Map<String, Object> tree = new HashMap<String, Object>(); tree.put("id", "0"); tree.put("pid", "null"); tree.put("name", name); tree.put("code", "0"); tree.put("number", "0"); tree.put("open", "true"); if (list != null && list.size() > 0) { tree.put("children", list); list.forEach(maps -> { if (maps.get("checked") != null && maps.get("checked").equals("true")) { tree.put("checked", "true"); } }); } return tree; } }
zTreeUtils树状工具类
猜你喜欢
转载自blog.csdn.net/zj_zxg/article/details/80496964
今日推荐
周排行