From 84871d4cfb7b85d4a5ac7a17003be4c4e867b8a7 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 07 三月 2023 22:25:14 +0800
Subject: [PATCH] fix 修复 加解密拦截器null问题

---
 ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java
index 97fc0a4..14a257d 100644
--- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java
+++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java
@@ -49,9 +49,8 @@
 
     @Override
     public Object plugin(Object target) {
-        if (target instanceof ParameterHandler) {
+        if (target instanceof ParameterHandler parameterHandler) {
             // 杩涜鍔犲瘑鎿嶄綔
-            ParameterHandler parameterHandler = (ParameterHandler) target;
             Object parameterObject = parameterHandler.getParameterObject();
             if (ObjectUtil.isNotNull(parameterObject) && !(parameterObject instanceof String)) {
                 this.encryptHandler(parameterObject);
@@ -65,19 +64,24 @@
      *
      * @param sourceObject 寰呭姞瀵嗗璞�
      */
-    @SuppressWarnings("unchecked cast")
     private void encryptHandler(Object sourceObject) {
-        if (sourceObject instanceof Map) {
-            ((Map<?, Object>) sourceObject).values().forEach(this::encryptHandler);
+        if (ObjectUtil.isNull(sourceObject)) {
             return;
         }
-        if (sourceObject instanceof List) {
+        if (sourceObject instanceof Map<?, ?> map) {
+            map.values().forEach(this::encryptHandler);
+            return;
+        }
+        if (sourceObject instanceof List<?> list) {
+            if(CollectionUtil.isEmpty(list)) {
+                return;
+            }
             // 鍒ゆ柇绗竴涓厓绱犳槸鍚﹀惈鏈夋敞瑙c�傚鏋滄病鏈夌洿鎺ヨ繑鍥烇紝鎻愰珮鏁堢巼
-            Object firstItem = ((List<?>) sourceObject).get(0);
+            Object firstItem = list.get(0);
             if (CollectionUtil.isEmpty(encryptorManager.getFieldCache(firstItem.getClass()))) {
                 return;
             }
-            ((List<?>) sourceObject).forEach(this::encryptHandler);
+            list.forEach(this::encryptHandler);
             return;
         }
         Set<Field> fields = encryptorManager.getFieldCache(sourceObject.getClass());

--
Gitblit v1.9.3