|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // ------------------------------------------------------------------------------------------------------- | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|