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