From 09ee5added9d59e90310a2586e846137ea597b19 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期五, 01 十二月 2023 13:15:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/common/web/BaseController.java |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/crm/common/web/BaseController.java b/src/main/java/com/zy/crm/common/web/BaseController.java
index 8fbe2a9..8855433 100644
--- a/src/main/java/com/zy/crm/common/web/BaseController.java
+++ b/src/main/java/com/zy/crm/common/web/BaseController.java
@@ -7,6 +7,10 @@
 import com.core.common.Cools;
 import com.core.controller.AbstractBaseController;
 import com.core.exception.CoolException;
+import com.zy.crm.system.entity.Dept;
+import com.zy.crm.system.entity.Role;
+import com.zy.crm.system.service.DeptService;
+import com.zy.crm.system.service.RoleService;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.zy.crm.manager.entity.Node;
@@ -39,7 +43,11 @@
     @Autowired
     private NodeService nodeService;
     @Autowired
+    private DeptService deptService;
+    @Autowired
     private UserLoginService userLoginService;
+    @Autowired
+    private RoleService roleService;
 
     protected Long getHostId(){
         if (getUserId() == 9527) {
@@ -72,6 +80,11 @@
         return Long.parseLong(String.valueOf(request.getAttribute("userId")));
     }
 
+    protected Long getUserId(String token){
+        UserLogin userLogin = userLoginService.selectOne(new EntityWrapper<UserLogin>().eq("token", token));
+        return userLogin.getUserId();
+    }
+
     protected User getUser(){
         User user = userService.selectById(getUserId());
         if (null == user) {
@@ -79,6 +92,27 @@
         }
         return user;
     }
+
+    protected User getUser(String token){
+        User user = userService.selectById(getUserId(token));
+        if (null == user) {
+            throw new CoolException(BaseRes.DENIED);
+        }
+        return user;
+    }
+
+    protected Long getDeptId() {
+        return getUser().getDeptId();
+    }
+
+    protected Role getRole(){
+        Role role = roleService.selectById(getUser().getRoleId());
+        if (null == role) {
+            throw new CoolException(BaseRes.DENIED);
+        }
+        return role;
+    }
+
     protected String getComment(Class<?> cls, String fieldName){
         Field[] fields = Cools.getAllFields(cls);
         for (Field field : fields){
@@ -99,6 +133,14 @@
             throw new CoolException("搴撳尯鏁版嵁閿欒");
         }
         return node;
+    }
+
+    protected Dept getOriginDept(){
+        Dept dept = deptService.getTop(getHostId());
+        if (dept == null) {
+            throw new CoolException("閮ㄩ棬鏁版嵁閿欒");
+        }
+        return dept;
     }
 
     protected <T> void hostEq(EntityWrapper<T> wrapper){
@@ -170,6 +212,9 @@
             }
             String column = null;
             if (field.isAnnotationPresent(TableField.class)) {
+                if (!field.getAnnotation(TableField.class).exist()) {
+                    continue;
+                }
                 column = field.getAnnotation(TableField.class).value();
             }
             if (Cools.isEmpty(column)) {
@@ -191,4 +236,41 @@
             wrapper.like(columns.get(i), condition);
         }
     }
+
+    //鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛锛屽搴旀潈闄愪笅鎵�鏈夌敤鎴穒d銆傦紙鏅�氳亴鍛樿幏鍙栬嚜宸憋紝棰嗗鑾峰彇鑷繁鍙婁笅灞烇紝瓒呯骇绠$悊鍛樺叏閮級
+    protected ArrayList<Long> getUserRoleBelongsToUserId() {
+        User user = getUser();
+        ArrayList<Long> userIds = new ArrayList<>();
+        if (user.getRoleCode().equals("boss")) {
+            //鍏ㄩ儴鏉冮檺
+            userIds = null;
+        } else if (user.getRoleCode().equals("manager")) {
+            //鑷繁鍙婁笅灞炴潈闄�
+            userIds.add(getUserId());
+            EntityWrapper<User> entityWrapper = new EntityWrapper<>();
+            entityWrapper.eq("dept_id", user.getDeptId());
+            List<User> userList = userService.selectList(entityWrapper);
+            for (User item : userList) {
+                userIds.add(item.getId());
+            }
+        }else{
+            //鑷繁鏉冮檺
+            userIds.add(getUserId());
+        }
+
+        return userIds;
+    }
+
+    protected ArrayList<Long> getUserRoleBelongsToUserId(String permission) {
+        User user = getUser();
+        if (user.getDeptName().equals("骞冲簱瑙勫垝缁�") || user.getDeptName().equals("鏍镐环缁�")) {
+            if (permission.equals("allopen")) {
+                //鏉冮檺鍏ㄩ儴寮�鏀�
+                return null;
+            }
+        }
+
+        //杩斿洖榛樿閫夋嫨鏂规
+        return getUserRoleBelongsToUserId();
+    }
 }

--
Gitblit v1.9.1