List<DevUnit> list数据结构
| 姓名 |
班级 |
年级 |
|
| s1 |
2 |
1 |
|
| s2 |
3 |
1 |
|
| s3 |
3 |
1 |
|
UnitTreeVO
public class UnitTreeVO {
/**
* 单元默认名称
*/
@ApiModelProperty(value = "单元名称", dataType = "String")
private String unitName;
private List<UnitTreeVO> child = new ArrayList<>();
}
@Override
public List<UnitTreeVO> unitTree() {
List<DevUnit> list = devUnitDao.lambdaQuery().select(DevUnit::getSiteName, DevUnit::getServerName, DevUnit::getUnitName).list();
List<UnitTreeVO> treeData = new ArrayList<>();
String siteName = "";
for (DevUnit devUnit : list) {
if (!siteName.equals(devUnit.getSiteName())) {
siteName = devUnit.getSiteName();
UnitTreeVO unitVO = new UnitTreeVO();
unitVO.setUnitName(siteName);
recursion(unitVO, list);
treeData.add(unitVO);
}
}
return treeData;
}
private void recursion (UnitTreeVO unitParent, List<DevUnit> list){
String serverName = "";
for (DevUnit devUnit : list) {
if (unitParent.getUnitName().equals(devUnit.getSiteName()) && !serverName.equals(devUnit.getServerName())) {
serverName = devUnit.getServerName();
UnitTreeVO unitVO2 = new UnitTreeVO();
unitVO2.setUnitName(serverName);
recursion(unitVO2, list);
unitParent.getChild().add(unitVO2);
}
String unitName = "";
if (unitParent.getUnitName().equals(devUnit.getServerName()) && !unitName.equals(devUnit.getUnitName())) {
unitName = devUnit.getUnitName();
UnitTreeVO unitVO2 = new UnitTreeVO();
unitVO2.setUnitName(unitName);
recursion(unitVO2, list);
unitParent.getChild().add(unitVO2);
}
}
}