|  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private TagService tagService; | 
 |  |  |     @Autowired | 
 |  |  |     private NodeService nodeService; | 
 |  |  |  | 
 |  |  |     /******************************** 归类树 *********************************/ | 
 |  |  |  | 
 |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     /******************************** 节点树 *********************************/ | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取树图数据结构 | 
 |  |  |      */ | 
 |  |  |     @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"); | 
 |  |  |         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); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     // ------------------------------------------------------------------------------------------------------- | 
 |  |  |  | 
 |  |  | } |