From a28dd0fe4057d9d1c52be85457ad0c3882ec2d40 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 07 三月 2023 18:26:09 +0800 Subject: [PATCH] fix 修复 数据加密拦截器空数据异常 --- ruoyi-common/ruoyi-common-encrypt/src/main/java/com/ruoyi/common/encrypt/interceptor/MybatisEncryptInterceptor.java | 17 +++++++++-------- 1 files changed, 9 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..9a2bab8 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,21 @@ * * @param sourceObject 寰呭姞瀵嗗璞� */ - @SuppressWarnings("unchecked cast") private void encryptHandler(Object sourceObject) { - if (sourceObject instanceof Map) { - ((Map<?, Object>) sourceObject).values().forEach(this::encryptHandler); + if (sourceObject instanceof Map<?, ?> map) { + map.values().forEach(this::encryptHandler); return; } - if (sourceObject instanceof List) { + 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