|
@@ -32,6 +32,11 @@ public class TreeUtil {
|
|
|
private static final String PARENT_ID_NAME = "parentId";
|
|
|
|
|
|
/**
|
|
|
+ * 排序字段
|
|
|
+ */
|
|
|
+ private static final String SORT = "sort";
|
|
|
+
|
|
|
+ /**
|
|
|
* 构建树形列表
|
|
|
*
|
|
|
* @param labelName 需要构建的节点名称
|
|
@@ -59,6 +64,8 @@ public class TreeUtil {
|
|
|
jsonObject.put(ID_NAME, data.get(idName));
|
|
|
jsonObject.put(PARENT_ID_NAME, data.get(parentIdName));
|
|
|
jsonObject.put(LABEL_NAME, data.get(labelName));
|
|
|
+ jsonObject.put(SORT, data.getOrDefault(SORT,0));
|
|
|
+
|
|
|
|
|
|
return jsonObject;
|
|
|
}).collect(Collectors.toList());
|
|
@@ -66,10 +73,10 @@ public class TreeUtil {
|
|
|
}
|
|
|
|
|
|
public static List<JSONObject> buildTreeObj(List<?> list) {
|
|
|
- return buildTreeObj(ID_NAME, PARENT_ID_NAME, CHILDREN_NAME, list);
|
|
|
+ return buildTreeObj(ID_NAME, PARENT_ID_NAME, CHILDREN_NAME, SORT, list);
|
|
|
}
|
|
|
|
|
|
- public static List<JSONObject> buildTreeObj(String idName, String parentName, String childrenName, List<?> list) {
|
|
|
+ public static List<JSONObject> buildTreeObj(String idName, String parentName, String childrenName, String sort, List<?> list) {
|
|
|
|
|
|
// 将数据转为map形式
|
|
|
List<JSONObject> dataList = JSONArray.parseArray(JSONObject.toJSONString(list), JSONObject.class);
|
|
@@ -86,7 +93,7 @@ public class TreeUtil {
|
|
|
.filter(data -> null == idDataMap.get(data.getString(parentName)))
|
|
|
.peek(data -> {
|
|
|
// 递归找出子级节点
|
|
|
- List<JSONObject> childNodes = findChildNodes(dataList, idName, parentName, childrenName, data.getString(idName));
|
|
|
+ List<JSONObject> childNodes = findChildNodes(dataList, idName, parentName, childrenName, data.getString(idName), sort);
|
|
|
if (childNodes.size() > 0) {
|
|
|
data.put(childrenName, childNodes);
|
|
|
}
|
|
@@ -94,11 +101,11 @@ public class TreeUtil {
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
- private static List<JSONObject> findChildNodes(List<JSONObject> dataList, String idName, String parentName, String childrenName, String id) {
|
|
|
+ private static List<JSONObject> findChildNodes(List<JSONObject> dataList, String idName, String parentName, String childrenName, String id, String sort) {
|
|
|
return dataList.stream()
|
|
|
.filter(data -> ObjectUtil.equals(data.getString(parentName), id))
|
|
|
.peek(data -> {
|
|
|
- List<JSONObject> childNodes = findChildNodes(dataList, idName, parentName, childrenName, data.getString(idName));
|
|
|
+ List<JSONObject> childNodes = findChildNodes(dataList, idName, parentName, childrenName, data.getString(idName), sort);
|
|
|
if (childNodes.size() > 0) {
|
|
|
data.put(childrenName, childNodes);
|
|
|
}
|