From 1f653021b7c278f2e505101ce0364e2160be51d1 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 08 十一月 2022 13:37:32 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/common/utils/TreeUtils.java              |   30 +++++----------
 src/main/java/com/zy/crm/system/service/impl/RoleServiceImpl.java |   35 +++++++++++++++++
 src/main/java/com/zy/crm/system/service/RoleService.java          |    5 ++
 3 files changed, 49 insertions(+), 21 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 3f5872a..4d6cda0 100644
--- a/src/main/java/com/zy/crm/common/utils/TreeUtils.java
+++ b/src/main/java/com/zy/crm/common/utils/TreeUtils.java
@@ -7,7 +7,6 @@
 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;
@@ -189,7 +188,6 @@
         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);
@@ -198,22 +196,8 @@
     }
 
     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());
-        }
-
+        // 浜哄憳
+        List<User> users = roleService.getUserByRoleCode(hostId, parent.getId(), userId);
         for (User user : users) {
             Map<String, Object> map = new HashMap<>();
             map.put("title", user.getNickname());
@@ -222,14 +206,20 @@
             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, userId);
diff --git a/src/main/java/com/zy/crm/system/service/RoleService.java b/src/main/java/com/zy/crm/system/service/RoleService.java
index 6a51052..ce0a230 100644
--- a/src/main/java/com/zy/crm/system/service/RoleService.java
+++ b/src/main/java/com/zy/crm/system/service/RoleService.java
@@ -2,7 +2,12 @@
 
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.crm.system.entity.Role;
+import com.zy.crm.system.entity.User;
+
+import java.util.List;
 
 public interface RoleService extends IService<Role> {
 
+    List<User> getUserByRoleCode(Long hostId, Long deptId, Long userId);
+
 }
diff --git a/src/main/java/com/zy/crm/system/service/impl/RoleServiceImpl.java b/src/main/java/com/zy/crm/system/service/impl/RoleServiceImpl.java
index da93c1f..02b3021 100644
--- a/src/main/java/com/zy/crm/system/service/impl/RoleServiceImpl.java
+++ b/src/main/java/com/zy/crm/system/service/impl/RoleServiceImpl.java
@@ -1,12 +1,45 @@
 package com.zy.crm.system.service.impl;
 
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
+import com.core.common.Cools;
 import com.zy.crm.system.entity.Role;
+import com.zy.crm.system.entity.User;
 import com.zy.crm.system.mapper.RoleMapper;
 import com.zy.crm.system.service.RoleService;
+import com.zy.crm.system.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 
 @Service("roleService")
 public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
 
+    @Autowired
+    private UserService userService;
+
+    @Override
+    public List<User> getUserByRoleCode(Long hostId, Long deptId, Long userId) {
+        Role role = this.selectById(userService.selectById(userId).getRoleId());
+        if (Cools.isEmpty(role) || Cools.isEmpty(role.getCode())) {
+            return new ArrayList<>();
+        }
+        switch (role.getCode()) {
+            case "boss":
+            case "manager":
+                return userService.getUserByDept(hostId, deptId);
+            case "salesman":
+                User user = userService.selectById(userId);
+                if (deptId.equals(user.getDeptId())) {
+                    return Collections.singletonList(user);
+                } else {
+                    return new ArrayList<>();
+                }
+            default:
+                return new ArrayList<>();
+        }
+    }
+
 }

--
Gitblit v1.9.1