一、实体对象
package com.soft.entity; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * 实体: 模块菜单表 */ public class Module implements Serializable { private String menuUrl;//菜单地址 private String moduleName;//名称 private String moduleDescribe;//描述 private String createTime;//创建时间 private String createUser;//创建人 private String moduleNo;//编号 private String moduleType;//类型 private String menuOrder;//菜单序号 private String updateTime;//修改时间 private String menuIcon;//菜单图标 private String parentId;//父级ID private String moduleId;//模块功能ID private String updateUser;//修改人 private List<Module> childrens = new ArrayList<Module>();//子级菜单 public void setEntity(Module module){ setMenuIcon(module.getMenuIcon()); setMenuUrl(module.getMenuUrl()); setModuleId(module.getModuleId()); setModuleName(module.getModuleName()); setModuleNo(module.getModuleNo()); setModuleType(module.getModuleType()); setParentId(module.getParentId()); } public void addChildren(Module module){ this.childrens.add(module); } public List<Module> getChildrens() { return childrens; } public void setChildrens(List<Module> childrens) { this.childrens = childrens; } public String getMenuUrl(){ return this.menuUrl; } public void setMenuUrl(String menuUrl){ this.menuUrl = menuUrl; } public String getModuleName(){ return this.moduleName; } public void setModuleName(String moduleName){ this.moduleName = moduleName; } public String getModuleDescribe(){ return this.moduleDescribe; } public void setModuleDescribe(String moduleDescribe){ this.moduleDescribe = moduleDescribe; } public String getCreateTime(){ return this.createTime; } public void setCreateTime(String createTime){ this.createTime = createTime; } public String getCreateUser(){ return this.createUser; } public void setCreateUser(String createUser){ this.createUser = createUser; } public String getModuleNo(){ return this.moduleNo; } public void setModuleNo(String moduleNo){ this.moduleNo = moduleNo; } public String getModuleType(){ return this.moduleType; } public void setModuleType(String moduleType){ this.moduleType = moduleType; } public String getMenuOrder(){ return this.menuOrder; } public void setMenuOrder(String menuOrder){ this.menuOrder = menuOrder; } public String getUpdateTime(){ return this.updateTime; } public void setUpdateTime(String updateTime){ this.updateTime = updateTime; } public String getMenuIcon(){ return this.menuIcon; } public void setMenuIcon(String menuIcon){ this.menuIcon = menuIcon; } public String getParentId(){ return this.parentId; } public void setParentId(String parentId){ this.parentId = parentId; } public String getModuleId(){ return this.moduleId; } public void setModuleId(String moduleId){ this.moduleId = moduleId; } public String getUpdateUser(){ return this.updateUser; } public void setUpdateUser(String updateUser){ this.updateUser = updateUser; } public String toString(){ return super.toString(); } }
二、组装代码
/** * 组装树 * @param moduleList * @return */ private List<Module> toTreeList(List<Module> moduleList) { Map<Object,Module> maps = new HashMap<>(); List<Module> list = new ArrayList<>(); for (Module module : moduleList) { addTreeNode(module,maps,list); } return list; } private void addTreeNode(Module module, Map<Object, Module> maps, List<Module> list) { if(maps.containsKey(module.getModuleId())){ maps.get(module.getModuleId()).setEntity(module); }else{ maps.put(module.getModuleId(), module); } if(module.getParentId() == null){ list.add(maps.get(module.getModuleId())); }else{ if(maps.containsKey(module.getParentId())){ maps.get(module.getParentId()).addChildren(module); }else{ Module parent = new Module(); parent.addChildren(module); maps.put(module.getParentId(),parent); } } } }