Quellcode durchsuchen

feat: which role can sign in

shc vor 11 Monaten
Ursprung
Commit
dc437e35d7

+ 22 - 23
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserController.java

@@ -1,7 +1,9 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.bean.BeanUtil;
@@ -97,34 +99,31 @@ public class SysUserController {
     private final SysAreaEntityService areaEntityService;
     private final SysUserManager userManager;
 
+    /**
+     * 判断可以登陆的角色
+     * 只有单纯是5 和 6的角色才不能登陆
+     *
+     * @param roles 角色合集
+     * @return 判断结果
+     */
     private boolean isZbOrDbUsers(Integer[] roles) {
 
-        if (null == roles) {
+        if (ArrayUtil.isEmpty(roles)) {
             return false;
         }
 
-        // 1-管理员,2-平台管理员,3-药企管理员/事业部,4-CSO管理员/区域管理员,7-财务管理员,9-CRO管理员,11-患教管理员,19-CMS,27-平台财务管理员,33-行政人员,
-        // 34-财务复核, 35-BC总负责人, 37-服务商管理员/二级cso管理员
-        return Arrays.asList(roles).contains(1)
-                || Arrays.asList(roles).contains(2)
-                || Arrays.asList(roles).contains(3)
-                || Arrays.asList(roles).contains(4)
-                || Arrays.asList(roles).contains(7)
-                || Arrays.asList(roles).contains(9)
-                || Arrays.asList(roles).contains(11)
-                || Arrays.asList(roles).contains(19)
-                || Arrays.asList(roles).contains(27)
-                || Arrays.asList(roles).contains(33)
-                || Arrays.asList(roles).contains(34)
-                || Arrays.asList(roles).contains(35)
-                || Arrays.asList(roles).contains(37)
-                || Arrays.asList(roles).contains(38)
-                || Arrays.asList(roles).contains(39)
-                || Arrays.asList(roles).contains(40)
-                || Arrays.asList(roles).contains(41)
-                || Arrays.asList(roles).contains(42)
-                || Arrays.asList(roles).contains(43)
-                ;
+        List<Integer> ignoreRoles = ListUtil.of(5, 6);
+        Set<Integer> roleIds = Arrays.stream(roles).collect(Collectors.toSet());
+
+        if (roleIds.size() == 1) {
+            return !CollUtil.containsAny(roleIds, ignoreRoles);
+        }
+
+        if (roleIds.size() == 2) {
+            return !CollUtil.containsAll(roleIds, ignoreRoles);
+        }
+
+        return true;
     }
 
     /**