This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-argus-service/src/main/java/com/nis/util/TreeUtil.java

84 lines
1.6 KiB
Java
Raw Normal View History

2017-12-19 14:55:52 +08:00
package com.nis.util;
import java.util.ArrayList;
import java.util.List;
import com.nis.domain.SysMenu;
import com.nis.web.security.UserUtils;
/**
* 将树构建成上下层结构
* @author Administrator
*
*/
public final class TreeUtil {
private List<SysMenu> menuList = new ArrayList<SysMenu>();
public TreeUtil(List<SysMenu> menuList) {
this.menuList = menuList;
}
public List<SysMenu> buildTree(){
List<SysMenu> newMenuList = new ArrayList<SysMenu>();
for (SysMenu menu : menuList) {
if (menu.getParent().getId().equals(1l)) {
if (isBusinessOfAdmin(menu.getName())) {
continue;
}
build(menu);
newMenuList.add(menu);
}
}
return newMenuList;
}
/**
* 过滤admin的业务功能
* @return
*/
private boolean isBusinessOfAdmin(String menuName) {
if (UserUtils.getUser().isAdmin()
&& menuName.equals(Constants.SYS_BUSINESS_MENU_NAME) ) {
return true;
}
return false;
}
private void build(SysMenu rootMenu) {
List<SysMenu> children = getChildren(rootMenu);
if ( !StringUtil.isEmpty(children) ) {
rootMenu.setChildren(children);
for (SysMenu child : children) {
if (StringUtils.isBlank(child.getHref())) { //根据url是否为空判断结束
build(child);
}
}
}
}
private List<SysMenu> getChildren(SysMenu rootMenu){
List<SysMenu> children = new ArrayList<SysMenu>();
for(SysMenu child : menuList) {
if (rootMenu.getId().equals(child.getParent().getId())) {
children.add(child);
}
}
return children;
}
}