summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiao Hao <[email protected]>2024-06-08 07:06:09 +0000
committerMiao Hao <[email protected]>2024-06-08 07:06:09 +0000
commit9f52766f0339957198a07cecc65b56c7a4379764 (patch)
tree327805b0447b6c98d40251e91307f268d8ab5c3d
parentcd5d4a2e1035a88a1cac49244119e18339090fdb (diff)
parent775b460018acbf3a5796bf12c9e6bd5b81a6a63f (diff)
Merge branch 'master' into 'master'master
Master See merge request EnderByEndera/realtime_protection!3
-rw-r--r--build.gradle1
-rw-r--r--src/main/java/com/realtime/protection/server/nodetree/NodeEntity.java40
-rw-r--r--src/main/java/com/realtime/protection/server/nodetree/NodeTreeController.java41
-rw-r--r--src/main/java/com/realtime/protection/server/nodetree/NodeTreeMapper.java15
-rw-r--r--src/main/java/com/realtime/protection/server/nodetree/NodeTreeService.java53
-rw-r--r--src/test/java/com/realtime/protection/server/nodeTree/NodeTreeTest.java23
6 files changed, 173 insertions, 0 deletions
diff --git a/build.gradle b/build.gradle
index 7c27792..288a37c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -47,6 +47,7 @@ dependencies {
implementation 'cn.dev33:sa-token-spring-boot3-starter:1.37.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
implementation 'com.alibaba:easyexcel:3.3.3'
+ implementation 'org.json:json:20210307'
implementation 'com.baomidou:dynamic-datasource-spring-boot3-starter:4.3.0'
implementation 'com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter:4.4.0'
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
diff --git a/src/main/java/com/realtime/protection/server/nodetree/NodeEntity.java b/src/main/java/com/realtime/protection/server/nodetree/NodeEntity.java
new file mode 100644
index 0000000..7842914
--- /dev/null
+++ b/src/main/java/com/realtime/protection/server/nodetree/NodeEntity.java
@@ -0,0 +1,40 @@
+package com.realtime.protection.server.nodetree;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+//李福连
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class NodeEntity {
+ int id;
+ int parent_id;
+ String code;
+ String dict_key;
+ String dict_value;
+ int sort;
+ String remark;
+ int is_deleted;
+ // 子节点列表
+ List<NodeEntity> children = new ArrayList<>();
+
+ public NodeEntity(int id, int parent_id, String code, String dict_key, String dict_value, int sort, String remark, int is_deleted) {
+ this.id = id;
+ this.parent_id = parent_id;
+ this.code = code;
+ this.dict_key = dict_key;
+ this.dict_value = dict_value;
+ this.sort = sort;
+ this.remark = remark;
+ this.is_deleted = is_deleted;
+ }
+}
diff --git a/src/main/java/com/realtime/protection/server/nodetree/NodeTreeController.java b/src/main/java/com/realtime/protection/server/nodetree/NodeTreeController.java
new file mode 100644
index 0000000..362b3da
--- /dev/null
+++ b/src/main/java/com/realtime/protection/server/nodetree/NodeTreeController.java
@@ -0,0 +1,41 @@
+package com.realtime.protection.server.nodetree;
+
+
+import com.realtime.protection.configuration.response.ResponseResult;
+import lombok.extern.slf4j.Slf4j;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.util.List;
+
+//李福连
+
+
+@RestController
+@RequestMapping("/nodeTree")
+@Slf4j
+public class NodeTreeController {
+
+ @Autowired
+ NodeTreeService nodeTreeService;
+ @GetMapping("/get")
+ public ResponseResult tupoInfo(String business) throws IOException {
+
+ List<NodeEntity> roots = nodeTreeService.get();
+
+
+ if (!roots.isEmpty()) {
+ return ResponseResult.ok()
+ .setData("data", roots);
+ }
+
+ return ResponseResult.error()
+ .setMessage("没有查到");
+ }
+
+
+}
diff --git a/src/main/java/com/realtime/protection/server/nodetree/NodeTreeMapper.java b/src/main/java/com/realtime/protection/server/nodetree/NodeTreeMapper.java
new file mode 100644
index 0000000..4f91af5
--- /dev/null
+++ b/src/main/java/com/realtime/protection/server/nodetree/NodeTreeMapper.java
@@ -0,0 +1,15 @@
+package com.realtime.protection.server.nodetree;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+//李福连
+
+@Mapper
+public interface NodeTreeMapper {
+
+ @Select("select * from realtime_protection.t_judian_dict where is_deleted=0")
+ List<NodeEntity> get();
+}
diff --git a/src/main/java/com/realtime/protection/server/nodetree/NodeTreeService.java b/src/main/java/com/realtime/protection/server/nodetree/NodeTreeService.java
new file mode 100644
index 0000000..1357a6d
--- /dev/null
+++ b/src/main/java/com/realtime/protection/server/nodetree/NodeTreeService.java
@@ -0,0 +1,53 @@
+package com.realtime.protection.server.nodetree;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.json.JSONObject;
+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;
+
+//李福连
+
+@Service
+public class NodeTreeService {
+ @Autowired
+ NodeTreeMapper nodeTreeMapper;
+
+ public List<NodeEntity> get() {
+ List<NodeEntity> nodes= nodeTreeMapper.get();
+
+ // 用于存储每个节点的id和节点对象的映射
+ Map<Integer, NodeEntity> nodeMap = new HashMap<>();
+
+ // 用于存储所有根节点
+ List<NodeEntity> roots = new ArrayList<>();
+
+ // 将所有节点放入map中,以便根据id快速查找
+ for (NodeEntity node : nodes) {
+ nodeMap.put(node.id, node);
+ }
+
+ // 建立树结构
+ for (NodeEntity node : nodes) {
+ if (node.parent_id == 0) {
+ // 如果parent_id为0,说明这是一个根节点
+ roots.add(node);
+ } else {
+ // 根据parent_id找到父节点,然后将当前节点加入父节点的children列表中
+ NodeEntity parentNode = nodeMap.get(node.parent_id);
+ if (parentNode != null) {
+ parentNode.children.add(node);
+ }
+ }
+ }
+
+
+ return roots;
+
+ }
+}
diff --git a/src/test/java/com/realtime/protection/server/nodeTree/NodeTreeTest.java b/src/test/java/com/realtime/protection/server/nodeTree/NodeTreeTest.java
new file mode 100644
index 0000000..30c1aa8
--- /dev/null
+++ b/src/test/java/com/realtime/protection/server/nodeTree/NodeTreeTest.java
@@ -0,0 +1,23 @@
+package com.realtime.protection.server.nodeTree;
+
+import com.realtime.protection.server.nodetree.NodeEntity;
+import com.realtime.protection.server.nodetree.NodeTreeService;
+import org.json.JSONObject;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.List;
+
+@SpringBootTest
+public class NodeTreeTest {
+ @Autowired
+ NodeTreeService nodeTreeService;
+ @Test
+ public void get() {
+ List<NodeEntity> js = nodeTreeService.get();
+ System.out.println(js);
+ }
+
+
+}