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