From eda58e0e6d4abdd2b060e28867d103045845aa69 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期一, 30 八月 2021 13:13:18 +0800
Subject: [PATCH] Merge branch 'test' into 'yuyue_dev'

---
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java |   66 +++++++++++++++++---------------
 1 files changed, 35 insertions(+), 31 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java
index 005cfae..f83c41f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java
@@ -1,11 +1,12 @@
 package com.panzhihua.service_grid.model.helper.encrypt;
 
+import java.lang.reflect.Field;
+import java.sql.PreparedStatement;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
 
-import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
-import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
-import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
-import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.binding.BindingException;
 import org.apache.ibatis.binding.MapperMethod;
 import org.apache.ibatis.executor.parameter.ParameterHandler;
@@ -15,42 +16,43 @@
 import org.springframework.core.annotation.AnnotationUtils;
 import org.springframework.stereotype.Component;
 
-import java.lang.reflect.Field;
-import java.sql.PreparedStatement;
-import java.util.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
+
+import lombok.extern.slf4j.Slf4j;
 
 /**
- * 加密拦截器
- * 包含加密字段查询时 的加密步骤
+ * 加密拦截器 包含加密字段查询时 的加密步骤
+ * 
  * @author cedoo
  * @since 2021-4-1 10:40:52
  */
-@Intercepts({
-        @Signature(type = ParameterHandler.class, method = "setParameters", args = PreparedStatement.class),
-})
+@Intercepts({@Signature(type = ParameterHandler.class, method = "setParameters", args = PreparedStatement.class),})
 @ConditionalOnProperty(value = "domain.encrypt", havingValue = "true")
 @Component
 @Slf4j
-public class ParammeterInterceptor  implements Interceptor {
+public class ParammeterInterceptor implements Interceptor {
 
     @Autowired
     private IEncryptDecrypt encryptDecrypt;
 
     @Override
     public Object intercept(Invocation invocation) throws Throwable {
-        //拦截 ParameterHandler 的 setParameters 方法 动态设置参数
+        // 拦截 ParameterHandler 的 setParameters 方法 动态设置参数
         if (invocation.getTarget() instanceof ParameterHandler) {
-            ParameterHandler parameterHandler = (ParameterHandler) invocation.getTarget();
-            PreparedStatement ps = (PreparedStatement) invocation.getArgs()[0];
+            ParameterHandler parameterHandler = (ParameterHandler)invocation.getTarget();
+            PreparedStatement ps = (PreparedStatement)invocation.getArgs()[0];
 
             // 反射获取 参数对像
-            Field parameterField =
-                    parameterHandler.getClass().getDeclaredField("parameterObject");
+            Field parameterField = parameterHandler.getClass().getDeclaredField("parameterObject");
             parameterField.setAccessible(true);
             Object parameterObject = parameterField.get(parameterHandler);
             if (Objects.nonNull(parameterObject)) {
                 Class<?> parameterObjectClass = parameterObject.getClass();
-                EncryptDecryptClass encryptDecryptClass = AnnotationUtils.findAnnotation(parameterObjectClass, EncryptDecryptClass.class);
+                EncryptDecryptClass encryptDecryptClass =
+                    AnnotationUtils.findAnnotation(parameterObjectClass, EncryptDecryptClass.class);
                 if (Objects.nonNull(encryptDecryptClass)) {
                     Field[] declaredFields = parameterObjectClass.getDeclaredFields();
                     final Object encrypt = encryptDecrypt.encrypt(declaredFields, parameterObject);
@@ -58,31 +60,33 @@
                 /**
                  * 通过加密字段查询时, 将查询参数中的加密字段加密后查询
                  */
-                if(parameterObjectClass == MapperMethod.ParamMap.class) {
-                    MapperMethod.ParamMap paramMap = (MapperMethod.ParamMap) parameterObject;
+                if (parameterObjectClass == MapperMethod.ParamMap.class) {
+                    MapperMethod.ParamMap paramMap = (MapperMethod.ParamMap)parameterObject;
                     boolean encrypted = false;
-                    try{
+                    try {
                         /**
                          * 分页插件,会在分页查询时 进行多次查询,需要判断是否已对加密参数加密,防止多次加密后,查询失败
                          */
-                        encrypted = paramMap.get("encrypted")!=null;
-                    }catch (BindingException be){
+                        encrypted = paramMap.get("encrypted") != null;
+                    } catch (BindingException be) {
                         encrypted = false;
                     }
-                    if(!encrypted) {
+                    if (!encrypted) {
                         Iterator iterator = paramMap.entrySet().iterator();
-                        while(iterator.hasNext()){
-                            Map.Entry<String, Object> entry = (Map.Entry<String, Object>) iterator.next();
+                        while (iterator.hasNext()) {
+                            Map.Entry<String, Object> entry = (Map.Entry<String, Object>)iterator.next();
                             if (entry.getKey().startsWith("param")) {
                                 Object v = entry.getValue();
-                                if(v!=null) {
-                                    EncryptQueryClass encryptQueryClass = AnnotationUtils.findAnnotation(v.getClass(), EncryptQueryClass.class);
+                                if (v != null) {
+                                    EncryptQueryClass encryptQueryClass =
+                                        AnnotationUtils.findAnnotation(v.getClass(), EncryptQueryClass.class);
                                     if (Objects.nonNull(encryptQueryClass)) {
                                         Field[] declaredFields = v.getClass().getDeclaredFields();
                                         for (Field field : declaredFields) {
                                             if (field.isAnnotationPresent(EncryptQuery.class)) {
                                                 try {
-                                                    final Object encrypt = encryptDecrypt.encrypt(new Field[]{field}, v);
+                                                    final Object encrypt =
+                                                        encryptDecrypt.encrypt(new Field[] {field}, v);
                                                     paramMap.put("encrypted", true);
                                                 } catch (IllegalAccessException e) {
                                                     e.printStackTrace();

--
Gitblit v1.7.1