diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java index 936466697..bd2ddece1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java @@ -6,6 +6,7 @@ import java.lang.annotation.*; * 数据权限 * * @author Lion Li + * @version 3.5.0 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java index 128a1f4e9..73d9c039c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java @@ -6,6 +6,7 @@ import java.lang.annotation.*; * 数据权限组 * * @author Lion Li + * @version 3.5.0 */ @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java index 5ae69ecfa..3deeecffc 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java @@ -15,6 +15,7 @@ import lombok.Getter; * 如需扩展更多自定义服务 可以参考 sdss 自行编写 * * @author Lion Li + * @version 3.5.0 */ @Getter @AllArgsConstructor diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java index c1ac605bc..6cec14061 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java @@ -41,15 +41,15 @@ import java.util.stream.Collectors; * 数据权限过滤 * * @author Lion Li + * @version 3.5.0 */ @Slf4j public class PlusDataPermissionHandler { /** - * 方法或类 与 注解的映射关系缓存 + * 方法或类(名称) 与 注解的映射关系缓存 */ - private final Map methodCacheMap = new ConcurrentHashMap<>(); - private final Map, DataPermission> classCacheMap = new ConcurrentHashMap<>(); + private final Map dataPermissionCacheMap = new ConcurrentHashMap<>(); /** * 无效注解方法缓存用于快速返回 @@ -154,24 +154,24 @@ public class PlusDataPermissionHandler { DataPermission dataPermission; // 获取方法注解 for (Method method : methods) { - dataPermission = methodCacheMap.get(method); + dataPermission = dataPermissionCacheMap.get(method.getName()); if (ObjectUtil.isNotNull(dataPermission)) { return dataPermission.value(); } if (AnnotationUtil.hasAnnotation(method, DataPermission.class)) { dataPermission = AnnotationUtil.getAnnotation(method, DataPermission.class); - methodCacheMap.put(method, dataPermission); + dataPermissionCacheMap.put(method.getName(), dataPermission); return dataPermission.value(); } } - dataPermission = classCacheMap.get(clazz); + dataPermission = dataPermissionCacheMap.get(clazz.getName()); if (ObjectUtil.isNotNull(dataPermission)) { return dataPermission.value(); } // 获取类注解 if (AnnotationUtil.hasAnnotation(clazz, DataPermission.class)) { dataPermission = AnnotationUtil.getAnnotation(clazz, DataPermission.class); - classCacheMap.put(clazz, dataPermission); + dataPermissionCacheMap.put(clazz.getName(), dataPermission); return dataPermission.value(); } return null; diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java index 6f4d4b7b3..508f42167 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java @@ -24,6 +24,12 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.List; +/** + * 数据权限拦截器 + * + * @author Lion Li + * @version 3.5.0 + */ public class PlusDataPermissionInterceptor extends JsqlParserSupport implements InnerInterceptor { private final PlusDataPermissionHandler dataPermissionHandler = new PlusDataPermissionHandler();