yzc 1 год назад
Родитель
Сommit
eb4a0c3591
1 измененных файлов с 12 добавлено и 5 удалено
  1. 12 5
      ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeUtil.java

+ 12 - 5
ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeUtil.java

@@ -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);
                     }