From f91e3a2507c6972fb15d7d91f0d0380dd4be0bef Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期一, 19 九月 2022 08:37:56 +0800 Subject: [PATCH] # --- src/main/java/com/zy/crm/common/utils/TreeUtils.java | 154 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 137 insertions(+), 17 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 eb5e668..3f5872a 100644 --- a/src/main/java/com/zy/crm/common/utils/TreeUtils.java +++ b/src/main/java/com/zy/crm/common/utils/TreeUtils.java @@ -2,13 +2,19 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; -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.Role; +import com.zy.crm.system.entity.User; +import com.zy.crm.system.service.DeptService; +import com.zy.crm.system.service.RoleService; +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.*; @@ -23,6 +29,12 @@ private TagService tagService; @Autowired private NodeService nodeService; + @Autowired + private DeptService deptService; + @Autowired + private UserService userService; + @Autowired + private RoleService roleService; /******************************** 褰掔被鏍� *********************************/ @@ -30,15 +42,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); @@ -50,7 +62,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"); @@ -63,7 +75,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); @@ -76,15 +88,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); @@ -96,7 +108,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"); @@ -109,13 +121,121 @@ 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); } } + /******************************** 閮ㄩ棬鏍� *********************************/ + + /** + * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯 + */ + @Cacheable(cacheNames="deptTree",key="#id") + 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<String, Object>> childrens = new ArrayList<>(); + map.put("children", childrens); + dealDept(dept, childrens, hostId); + result.add(map); + // 寮�濮嬪鐞嗗瓧鑺傜偣 +// deal(tag, childrens); + return result; + } + + /** + * 閫掑綊鑾峰彇瀛愯妭鐐规暟鎹� + */ + 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); + if (hostId != null) { + wrapper.eq("host_id", hostId); + } + List<Dept> depts = deptService.selectList(wrapper); + 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); + dealDept(dept, childrens, hostId); + list.add(map); + } + } + + /******************************** 閮ㄩ棬 + 鍛樺伐 鏍� *********************************/ + + /** + * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯 + */ + @Cacheable(cacheNames="deptUserTree",key="#id") + public ArrayList<Map<String, Object>> getDeptUserTree(String id, Long hostId, Long userId){ + 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("key", "dept_id"); +// map.put("icon", "layui-icon layui-icon-star-fill"); + List<Map<String, Object>> childrens = new ArrayList<>(); + map.put("children", childrens); + dealUserDept(dept, childrens, hostId, userId); + result.add(map); + return result; + } + + public void dealUserDept(Dept parent, List<Map<String, Object>> list, Long hostId, Long userId) { + 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 = new ArrayList<>(); + Role role = roleService.selectById(userService.selectById(userId).getRoleId()); + if (role.getCode().equals("salesman")) { + users.add(userService.selectById(userId)); + } else { + 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("key", "user_id"); + map.put("icon", "layui-icon layui-icon-friends"); + 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); + map.put("key", "dept_id"); +// map.put("icon", "layui-icon layui-icon-star-fill"); + List<Map<String, Object>> childrens = new ArrayList<>(); + map.put("children", childrens); + dealUserDept(dept, childrens, hostId, userId); + list.add(map); + } + } // ------------------------------------------------------------------------------------------------------- @@ -123,12 +243,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