菜单权限规范对应父级/子级菜单方法
public class MenuUtil {
public static List<SysAccess> setTree(List<SysAccess> accessList){
List<SysAccess> res = new ArrayList<>();
for (int i = 0; i < accessList.size(); i++) {
SysAccess access = accessList.get(i);
if (access.getParentId() == null) {//匹配一级部门
accessList.remove(access);
res.add(setChild(access, accessList));
}
}
return res;
}
private static SysAccess setChild(SysAccess parent, List<SysAccess> accessList) {
List<SysAccess> child = parent.getChildren() == null ? new ArrayList<>() : parent.getChildren();
for (int i = 0; i < accessList.size(); i++) {
SysAccess access = accessList.get(i);
if (parent.getId().equals(access.getParentId())) {
SysAccess access1 = setChild(access, accessList);
child.add(access1);
i--;
accessList.remove(access);
}
}
parent.setChildren(child);
return parent;
}
}
Access实体类:
import java.util.List;
public class Access {
private Integer id;
private String accessName;
private String accessUrl;
private Integer parentId;
private Integer menuLevel;//0:方法,1:一级;2:二级....
private List<Access> children;
public List<Access> getChildren() {
return children;
}
public void setChildren(List<Access> children) {
this.children = children;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAccessName() {
return accessName;
}
public void setAccessName(String accessName) {
this.accessName = accessName == null ? null : accessName.trim();
}
public String getAccessUrl() {
return accessUrl;
}
public void setAccessUrl(String accessUrl) {
this.accessUrl = accessUrl == null ? null : accessUrl.trim();
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public Integer getMenuLevel() {
return menuLevel;
}
public void setMenuLevel(Integer menuLevel) {
this.menuLevel = menuLevel;
}
}