From 3fce90dbb923fe56c7c579c195060f78d81ae774 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期五, 17 十二月 2021 21:50:14 +0800 Subject: [PATCH] update 优化数据权限缓存合并为一个 标注版本注释 --- ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataPermission.java | 1 + ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/PlusDataPermissionInterceptor.java | 6 ++++++ ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataColumn.java | 1 + ruoyi-common/src/main/java/com/ruoyi/common/enums/DataScopeType.java | 1 + ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java | 14 +++++++------- 5 files changed, 16 insertions(+), 7 deletions(-) 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 9364666..bd2ddec 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 @@ * 鏁版嵁鏉冮檺 * * @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 128a1f4..73d9c03 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 @@ * 鏁版嵁鏉冮檺缁� * * @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 5ae69ec..3deeecf 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 @@ * 濡傞渶鎵╁睍鏇村鑷畾涔夋湇鍔� 鍙互鍙傝�� 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 c1ac605..6cec140 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 @@ * 鏁版嵁鏉冮檺杩囨护 * * @author Lion Li + * @version 3.5.0 */ @Slf4j public class PlusDataPermissionHandler { /** - * 鏂规硶鎴栫被 涓� 娉ㄨВ鐨勬槧灏勫叧绯荤紦瀛� + * 鏂规硶鎴栫被(鍚嶇О) 涓� 娉ㄨВ鐨勬槧灏勫叧绯荤紦瀛� */ - private final Map<Method, DataPermission> methodCacheMap = new ConcurrentHashMap<>(); - private final Map<Class<?>, DataPermission> classCacheMap = new ConcurrentHashMap<>(); + private final Map<String, DataPermission> dataPermissionCacheMap = new ConcurrentHashMap<>(); /** * 鏃犳晥娉ㄨВ鏂规硶缂撳瓨鐢ㄤ簬蹇�熻繑鍥� @@ -154,24 +154,24 @@ 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 6f4d4b7..508f421 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.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(); -- Gitblit v1.9.3