From bcb19e8c93c3cabf0d8eb3ee34ed819b3c5a10ef Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期一, 25 十一月 2024 13:14:11 +0800 Subject: [PATCH] #优化地图 --- src/main/java/com/zy/common/utils/TreeUtils.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/common/utils/TreeUtils.java b/src/main/java/com/zy/common/utils/TreeUtils.java index 271ee28..76f567c 100644 --- a/src/main/java/com/zy/common/utils/TreeUtils.java +++ b/src/main/java/com/zy/common/utils/TreeUtils.java @@ -1,7 +1,10 @@ package com.zy.common.utils; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.zy.asrs.entity.Node; import com.zy.asrs.entity.Tag; +import com.zy.asrs.service.NodeService; import com.zy.asrs.service.TagService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; @@ -18,6 +21,8 @@ @Autowired private TagService tagService; + @Autowired + private NodeService nodeService; /******************************** 褰掔被鏍� *********************************/ @@ -86,4 +91,51 @@ } } + /** + * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯 + */ + @Cacheable(cacheNames="nodeTree",key="#id") + public ArrayList<Map> getNodeTree(String id, Long hostId){ + ArrayList<Map> result = new ArrayList<>(); + Node node = nodeService.selectById(id); + // 涓昏妭鐐� + Map<String, Object> map = new HashMap<>(); + map.put("title", node.getName()); + map.put("id", node.getId()); + map.put("spread", true); + List<Map> childrens = new ArrayList<>(); + map.put("children", childrens); + dealNode(node, childrens, hostId); + result.add(map); + // 寮�濮嬪鐞嗗瓧鑺傜偣 +// deal(tag, childrens); + return result; + } + + /** + * 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹� + */ + public void dealNode(Node parent, List<Map> list, Long hostId) { + Wrapper<Node> wrapper = new EntityWrapper<Node>() + .eq("parent_id", parent.getId()) + .eq("status", "1") + .ne("type",3); + if (hostId != null) { + wrapper.eq("host_id", hostId); + } + List<Node> nodes = nodeService.selectList(wrapper); + for (Node node : nodes) { + Map<String, Object> map = new HashMap<>(); + map.put("title", node.getName()); + map.put("id", node.getId()); + map.put("spread", true); + List<Map> childrens = new ArrayList<>(); + map.put("children", childrens); + dealNode(node, childrens, hostId); + list.add(map); + } + } + + + } -- Gitblit v1.9.1