diff options
| author | Miao Hao <[email protected]> | 2024-06-08 07:06:09 +0000 |
|---|---|---|
| committer | Miao Hao <[email protected]> | 2024-06-08 07:06:09 +0000 |
| commit | 9f52766f0339957198a07cecc65b56c7a4379764 (patch) | |
| tree | 327805b0447b6c98d40251e91307f268d8ab5c3d | |
| parent | cd5d4a2e1035a88a1cac49244119e18339090fdb (diff) | |
| parent | 775b460018acbf3a5796bf12c9e6bd5b81a6a63f (diff) | |
Merge branch 'master' into 'master'master
Master
See merge request EnderByEndera/realtime_protection!3
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); + } + + +} |
