package com.anlysdata.pojo.entity;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class TRegion implements Serializable {
private String id;
private String name;
private Byte level;
private String pid;
private List<TRegion> children;
public List<TRegion> getChildren() {
return children;
}
public void setChildren(List<TRegion> children) {
this.children = children;
}
private static final long serialVersionUID = 1L;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id == null ? null : id.trim();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public Byte getLevel() {
return level;
}
public void setLevel(Byte level) {
this.level = level;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid == null ? null : pid.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", name=").append(name);
sb.append(", level=").append(level);
sb.append(", pid=").append(pid);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
public static List<TRegion> buildTree(List<TRegion> list, String parentId) {
List<TRegion> menus = new ArrayList<>();
for (TRegion menu : list) {
String menuId = menu.getId();
String pid = menu.getPid();
if (xd(parentId,pid)) {
List<TRegion> menuLists = buildTree(list, menuId);
menu.setChildren(menuLists);
menus.add(menu);
}
}
return menus;
}
/**
* 递归条件
* @param parentId
* @param pid
* @return
*/
private static Boolean xd(String parentId,String pid){
if (StringUtils.isBlank(parentId)&&StringUtils.isBlank(pid)){
return Boolean.TRUE;
}
if (!StringUtils.isBlank(parentId)){
return parentId.equals(pid);
}
return Boolean.FALSE;
}
}