From 48e6a7175d35994d54d2dd86d7ee12f3f0cc50f3 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期五, 16 九月 2022 10:42:44 +0800 Subject: [PATCH] # --- src/main/java/com/zy/crm/common/utils/TreeUtils.java | 105 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 80 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/zy/crm/common/utils/TreeUtils.java b/src/main/java/com/zy/crm/common/utils/TreeUtils.java index 4c97962..0520963 100644 --- a/src/main/java/com/zy/crm/common/utils/TreeUtils.java +++ b/src/main/java/com/zy/crm/common/utils/TreeUtils.java @@ -2,15 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; -import com.zy.crm.system.entity.Dept; -import com.zy.crm.system.service.DeptService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.stereotype.Component; import com.zy.crm.manager.entity.Node; import com.zy.crm.manager.entity.Tag; import com.zy.crm.manager.service.NodeService; import com.zy.crm.manager.service.TagService; +import com.zy.crm.system.entity.Dept; +import com.zy.crm.system.entity.User; +import com.zy.crm.system.service.DeptService; +import com.zy.crm.system.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; import java.util.*; @@ -27,6 +29,8 @@ private NodeService nodeService; @Autowired private DeptService deptService; + @Autowired + private UserService userService; /******************************** 褰掔被鏍� *********************************/ @@ -34,15 +38,15 @@ * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯 */ @Cacheable(cacheNames="tagTree",key="#id") - public ArrayList<Map> getTree(String id, Long hostId){ - ArrayList<Map> result = new ArrayList<>(); + public ArrayList<Map<String, Object>> getTree(String id, Long hostId){ + ArrayList<Map<String, Object>> result = new ArrayList<>(); Tag tag = tagService.selectById(id); // 涓昏妭鐐� Map<String, Object> map = new HashMap<>(); map.put("title", tag.getName()); map.put("id", tag.getId()); map.put("spread", true); - List<Map> childrens = new ArrayList<>(); + List<Map<String, Object>> childrens = new ArrayList<>(); map.put("children", childrens); dealTag(tag, childrens, hostId); result.add(map); @@ -54,7 +58,7 @@ /** * 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹� */ - public void dealTag(Tag parent, List<Map> list, Long hostId) { + public void dealTag(Tag parent, List<Map<String, Object>> list, Long hostId) { Wrapper<Tag> wrapper = new EntityWrapper<Tag>() .eq("parent_id", parent.getId()) .eq("status", "1"); @@ -67,7 +71,7 @@ map.put("title", tag.getName()); map.put("id", tag.getId()); map.put("spread", true); - List<Map> childrens = new ArrayList<>(); + List<Map<String, Object>> childrens = new ArrayList<>(); map.put("children", childrens); dealTag(tag, childrens, hostId); list.add(map); @@ -80,15 +84,15 @@ * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯 */ @Cacheable(cacheNames="nodeTree",key="#id") - public ArrayList<Map> getNodeTree(String id, Long hostId){ - ArrayList<Map> result = new ArrayList<>(); + public ArrayList<Map<String, Object>> getNodeTree(String id, Long hostId){ + ArrayList<Map<String, Object>> 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<>(); + List<Map<String, Object>> childrens = new ArrayList<>(); map.put("children", childrens); dealNode(node, childrens, hostId); result.add(map); @@ -100,7 +104,7 @@ /** * 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹� */ - public void dealNode(Node parent, List<Map> list, Long hostId) { + public void dealNode(Node parent, List<Map<String, Object>> list, Long hostId) { Wrapper<Node> wrapper = new EntityWrapper<Node>() .eq("parent_id", parent.getId()) .eq("status", "1"); @@ -113,7 +117,7 @@ map.put("title", node.getName()); map.put("id", node.getId()); map.put("spread", true); - List<Map> childrens = new ArrayList<>(); + List<Map<String, Object>> childrens = new ArrayList<>(); map.put("children", childrens); dealNode(node, childrens, hostId); list.add(map); @@ -126,15 +130,15 @@ * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯 */ @Cacheable(cacheNames="deptTree",key="#id") - public ArrayList<Map> getDeptTree(String id, Long hostId){ - ArrayList<Map> result = new ArrayList<>(); + public ArrayList<Map<String, Object>> getDeptTree(String id, Long hostId){ + ArrayList<Map<String, Object>> result = new ArrayList<>(); Dept dept = deptService.selectById(id); // 涓昏妭鐐� Map<String, Object> map = new HashMap<>(); map.put("title", dept.getName()); map.put("id", dept.getId()); map.put("spread", true); - List<Map> childrens = new ArrayList<>(); + List<Map<String, Object>> childrens = new ArrayList<>(); map.put("children", childrens); dealDept(dept, childrens, hostId); result.add(map); @@ -146,10 +150,10 @@ /** * 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹� */ - public void dealDept(Dept parent, List<Map> list, Long hostId) { + public void dealDept(Dept parent, List<Map<String, Object>> list, Long hostId) { Wrapper<Dept> wrapper = new EntityWrapper<Dept>() .eq("parent_id", parent.getId()) - .eq("status", "1"); + .eq("status", 1); if (hostId != null) { wrapper.eq("host_id", hostId); } @@ -159,13 +163,64 @@ map.put("title", dept.getName()); map.put("id", dept.getId()); map.put("spread", true); - List<Map> childrens = new ArrayList<>(); + List<Map<String, Object>> childrens = new ArrayList<>(); map.put("children", childrens); dealDept(dept, childrens, hostId); list.add(map); } } + /******************************** 閮ㄩ棬 + 鍛樺伐 鏍� *********************************/ + + /** + * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯 + */ + @Cacheable(cacheNames="deptUserTree",key="#id") + public ArrayList<Map<String, Object>> getDeptUserTree(String id, Long hostId){ + ArrayList<Map<String, Object>> result = new ArrayList<>(); + Dept dept = deptService.selectById(id); + // 涓昏妭鐐� + Map<String, Object> map = new HashMap<>(); + map.put("title", dept.getName()); + map.put("id", dept.getId()); + map.put("spread", true); + map.put("type", 0); + List<Map<String, Object>> childrens = new ArrayList<>(); + map.put("children", childrens); + dealUserDept(dept, childrens, hostId); + result.add(map); + return result; + } + + public void dealUserDept(Dept parent, List<Map<String, Object>> list, Long hostId) { + Wrapper<Dept> wrapper = new EntityWrapper<Dept>() + .eq("parent_id", parent.getId()) + .eq("status", 1); + if (hostId != null) { + wrapper.eq("host_id", hostId); + } + List<Dept> depts = deptService.selectList(wrapper); + + List<User> users = userService.getUserByDept(hostId, parent.getId()); + for (User user : users) { + Map<String, Object> map = new HashMap<>(); + map.put("title", user.getNickname()); + map.put("id", user.getId()); + map.put("type", 1); + list.add(map); + } + + for (Dept dept : depts) { + Map<String, Object> map = new HashMap<>(); + map.put("title", dept.getName()); + map.put("id", dept.getId()); + map.put("spread", true); + List<Map<String, Object>> childrens = new ArrayList<>(); + map.put("children", childrens); + dealUserDept(dept, childrens, hostId); + list.add(map); + } + } // ------------------------------------------------------------------------------------------------------- @@ -173,12 +228,12 @@ * 鏉′欢绛涢�� */ @SuppressWarnings("unchecked") - public void remove(String condition, List<Map> list) { - Iterator<Map> iterator = list.iterator(); + public void remove(String condition, List<Map<String, Object>> list) { + Iterator<Map<String, Object>> iterator = list.iterator(); while (iterator.hasNext()) { - Map map = iterator.next(); + Map<String, Object> map = iterator.next(); if (map.get("children") != null) { - List<Map> children = (List<Map>) map.get("children"); + List<Map<String, Object>> children = (List<Map<String, Object>>) map.get("children"); if (children.size() > 0) { remove(condition, children); } else { -- Gitblit v1.9.1