浏览代码

fix:代码优化

caozixuan 1 年之前
父节点
当前提交
bc1d1ef351

+ 0 - 19
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/DataPermissionTypeEnum.java

@@ -49,23 +49,4 @@ public enum DataPermissionTypeEnum {
         }
         return list;
     }
-
-    /**
-     * 根据数据权限权重查询枚举
-     *
-     * @param weight 权重
-     * @return 数据权限类型
-     */
-    public static DataPermissionTypeEnum findByWeight(int weight) {
-        List<DataPermissionTypeEnum> dataPermissionTypes = Arrays.stream(DataPermissionTypeEnum.values())
-                .filter(e -> weight == e.getWeight()).collect(Collectors.toList());
-        if (dataPermissionTypes.size() > 1) {
-            throw ExceptionResultEnum.ERROR.exception("数据权限枚举类 权重值异常");
-        }
-        if (dataPermissionTypes.size() == 0) {
-            return null;
-        } else {
-            return dataPermissionTypes.get(0);
-        }
-    }
 }

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicRoleDataPermissionServiceImpl.java

@@ -139,6 +139,7 @@ public class BasicRoleDataPermissionServiceImpl extends ServiceImpl<BasicRoleDat
             List<Long> roleIdList = sysRoleService.getUserRoles(requestUserId);
             // 数据库中存在该方法的url
             int maxWeight = 0;
+            DataPermissionTypeEnum finalPermissionType = null;
             for (Long roleId : roleIdList) {
                 DataPermissionTypeEnum roleDataPermissionType = this.searchRoleDataPermissionByPrivilege(roleId,
                         sysPrivilege, schoolId);
@@ -146,11 +147,12 @@ public class BasicRoleDataPermissionServiceImpl extends ServiceImpl<BasicRoleDat
                     // 角色数据权限不为空时,筛选出所有角色在该url中的最大范围数据权限为该url的最终数据权限
                     int weight = roleDataPermissionType.getWeight();
                     if (weight > maxWeight) {
+                        // 更新为当前找到的最高权限类型
                         maxWeight = weight;
+                        finalPermissionType = roleDataPermissionType;
                     }
                 }
             }
-            DataPermissionTypeEnum finalPermissionType = DataPermissionTypeEnum.findByWeight(maxWeight);
             if (Objects.nonNull(finalPermissionType)) {
                 // 最终数据权限不为空
                 SysUser requestUser = sysUserService.getById(requestUserId);