david 2 жил өмнө
parent
commit
04ccc2b7e6

+ 38 - 19
src/main/java/com/roma/romaapi/service/PageService.java

@@ -4,10 +4,7 @@ import com.roma.romaapi.dao.PageDao;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Service
 public class PageService {
@@ -27,7 +24,7 @@ public class PageService {
 
         List<Map<String, Object>> treeMenu = this.treeMenu(renderMenu);  // 生成树结构
 
-        return renderMenu;
+        return treeMenu;
     }
 
     // 渲染节点内容
@@ -73,26 +70,48 @@ public class PageService {
 
     // 转换tree结构数据
     private List<Map<String, Object>> treeMenu(List<Map<String, Object>> renderMenu){
-        List<Map<String, Object>> retList = new ArrayList<Map<String, Object>>();
-        // 构建数据
-        System.out.print("dsdsadsd---tree");
-        for (int i = 0; i < renderMenu.size(); i++) {
-            Map map = renderMenu.get(i);
-            System.out.println(map.get("id"));
-            System.out.println(map.get("parent_id"));
+        // 处理的数据存在
+        List<Map<String, Object>> pList = new ArrayList<Map<String, Object>>();// eTree
+        // 获取父节点
+        for (Map<String, Object> tmp : renderMenu) {
+            Object parentId =  tmp.get("parent_id");
+            String stringParentId = parentId.toString();
+            Integer intParentId = Integer.parseInt(stringParentId); // 上级id
+            Object dataId = tmp.get("id");
+            String stringDataId = dataId.toString();
+            Integer intDataId = Integer.parseInt(stringDataId); // 主键id
+            System.out.println(stringParentId.equals("0"));
+            if (stringParentId.equals("0")) {
+                // 组装子节点,开始循环去获取子节点
+                tmp.put("children", menuChild(stringDataId, renderMenu));
+                pList.add(tmp);
+            }
+        }
+
+        return pList;
+    }
+
+    /**
+     * 处理子节点
+     * @param id
+     * @param data
+     * @return
+     */
+    private List<?> menuChild(String id, List<Map<String, Object>> data) {
+        List<Object> lists = new ArrayList<Object>();
+        for (Map<String, Object> map : data) {
             Object parentId =  map.get("parent_id");
             String stringParentId = parentId.toString();
             Integer intParentId = Integer.parseInt(stringParentId); // 上级id
             Object dataId = map.get("id");
             String stringDataId = dataId.toString();
             Integer intDataId = Integer.parseInt(stringDataId); // 主键id
-
-System.out.println(map);
-//            $id = $item[$primary_key];
-//            $parent_id = $item[$parent_key];
-//            $r[$parent_id][$id] = $item;
+            if (stringParentId.equals(id)) {
+                // 组装子节点,开始循环去获取子节点
+                map.put("children", menuChild(stringDataId, data));
+                lists.add(map);
+            }
         }
-
-        return retList;
+        return lists;
     }
 }