From 336b1ee18a1d1ff4230e8edb7faa43e3b5ef1ffc Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 08 九月 2023 08:50:35 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/common/utils/TreeUtils.java |   68 +++++++++++++++++++++-------------
 1 files changed, 42 insertions(+), 26 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 7c534bb..a370333 100644
--- a/src/main/java/com/zy/crm/common/utils/TreeUtils.java
+++ b/src/main/java/com/zy/crm/common/utils/TreeUtils.java
@@ -7,8 +7,10 @@
 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;
@@ -31,6 +33,8 @@
     private DeptService deptService;
     @Autowired
     private UserService userService;
+    @Autowired
+    private RoleService roleService;
 
     /******************************** 褰掔被鏍� *********************************/
 
@@ -176,33 +180,39 @@
      * 鑾峰彇鏍戝浘鏁版嵁缁撴瀯
      */
     @Cacheable(cacheNames="deptUserTree",key="#id")
-    public ArrayList<Map<String, Object>> getDeptUserTree(String id, Long hostId){
+    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);
-        result.add(map);
+        User user = userService.selectById(userId);
+        Role role = roleService.selectById(user.getRoleId());
+        if (role.getCode().equals("salesman")) {
+            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");
+            result.add(map);
+        } else {
+            if (role.getId()==1){
+                id="19";
+            }
+            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");
+            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) {
-        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());
+    public void dealUserDept(Dept parent, List<Map<String, Object>> list, Long hostId, Long userId) {
+        // 浜哄憳
+        List<User> users = roleService.getUserByRoleCode(hostId, parent.getId(), userId);
         for (User user : users) {
             Map<String, Object> map = new HashMap<>();
             map.put("title", user.getNickname());
@@ -211,17 +221,23 @@
             map.put("icon", "layui-icon layui-icon-friends");
             list.add(map);
         }
-
+        // 閮ㄩ棬
+        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);
             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);
+            dealUserDept(dept, childrens, hostId, userId);
             list.add(map);
         }
     }

--
Gitblit v1.9.1