mirror of
				https://github.com/continew-org/continew-starter.git
				synced 2025-10-31 10:57:15 +08:00 
			
		
		
		
	chore: 优化部分代码格式
This commit is contained in:
		| @@ -176,7 +176,6 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler { | |||||||
|      * @param expression     处理前的表达式 |      * @param expression     处理前的表达式 | ||||||
|      * @return 处理完后的表达式 |      * @return 处理完后的表达式 | ||||||
|      */ |      */ | ||||||
|     // |  | ||||||
|     private Expression buildSelfExpression(DataPermission dataPermission, |     private Expression buildSelfExpression(DataPermission dataPermission, | ||||||
|                                            DataPermissionCurrentUser currentUser, |                                            DataPermissionCurrentUser currentUser, | ||||||
|                                            Expression expression) { |                                            Expression expression) { | ||||||
|   | |||||||
| @@ -24,6 +24,5 @@ | |||||||
|             <groupId>com.baomidou</groupId> |             <groupId>com.baomidou</groupId> | ||||||
|             <artifactId>mybatis-plus-core</artifactId> |             <artifactId>mybatis-plus-core</artifactId> | ||||||
|         </dependency> |         </dependency> | ||||||
|          |  | ||||||
|     </dependencies> |     </dependencies> | ||||||
| </project> | </project> | ||||||
| @@ -60,12 +60,12 @@ public abstract class AbstractMyBatisInterceptor implements Interceptor { | |||||||
|      * 获取加密参数 |      * 获取加密参数 | ||||||
|      * |      * | ||||||
|      * @param mappedStatementId 映射语句 ID |      * @param mappedStatementId 映射语句 ID | ||||||
|      * @param parameterIndex    参数数量 |      * @param parameterIndex    参数索引 | ||||||
|      * @return 加密参数 |      * @return 加密参数 | ||||||
|      */ |      */ | ||||||
|     public Map<String, FieldEncrypt> getEncryptParams(String mappedStatementId, Integer parameterIndex) { |     public Map<String, FieldEncrypt> getEncryptParams(String mappedStatementId, Integer parameterIndex) { | ||||||
|         return ENCRYPT_PARAM_CACHE |         return ENCRYPT_PARAM_CACHE | ||||||
|             .computeIfAbsent(mappedStatementId, it -> getEncryptParamsNoCached(mappedStatementId, parameterIndex)); |             .computeIfAbsent(mappedStatementId, m -> getEncryptParamsNoCached(mappedStatementId, parameterIndex)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -26,7 +26,6 @@ import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; | |||||||
| import com.baomidou.mybatisplus.core.metadata.TableInfo; | import com.baomidou.mybatisplus.core.metadata.TableInfo; | ||||||
| import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; | import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.Constants; | import com.baomidou.mybatisplus.core.toolkit.Constants; | ||||||
| import com.baomidou.mybatisplus.core.toolkit.StringUtils; |  | ||||||
| import org.apache.ibatis.cache.CacheKey; | import org.apache.ibatis.cache.CacheKey; | ||||||
| import org.apache.ibatis.executor.Executor; | import org.apache.ibatis.executor.Executor; | ||||||
| import org.apache.ibatis.mapping.BoundSql; | import org.apache.ibatis.mapping.BoundSql; | ||||||
| @@ -119,9 +118,9 @@ public class MyBatisEncryptInterceptor extends AbstractMyBatisInterceptor { | |||||||
|                 Object entity = parameterMap.getOrDefault(parameterName, null); |                 Object entity = parameterMap.getOrDefault(parameterName, null); | ||||||
|                 this.doEncrypt(this.getEncryptFields(entity), entity); |                 this.doEncrypt(this.getEncryptFields(entity), entity); | ||||||
|             } else if (parameterName.startsWith(Constants.WRAPPER)) { |             } else if (parameterName.startsWith(Constants.WRAPPER)) { | ||||||
|  |                 // 处理参数为 Wrapper 的情况 | ||||||
|                 Wrapper wrapper = (Wrapper)parameterMap.getOrDefault(parameterName, null); |                 Wrapper wrapper = (Wrapper)parameterMap.getOrDefault(parameterName, null); | ||||||
|                 // 处理 wrapper 的情况 |                 this.doEncrypt(wrapper, mappedStatement); | ||||||
|                 handleWrapperEncrypt(wrapper, mappedStatement); |  | ||||||
|             } else { |             } else { | ||||||
|                 FieldEncrypt fieldEncrypt = encryptParamEntry.getValue(); |                 FieldEncrypt fieldEncrypt = encryptParamEntry.getValue(); | ||||||
|                 parameterMap.put(parameterName, this.doEncrypt(parameterMap.get(parameterName), fieldEncrypt)); |                 parameterMap.put(parameterName, this.doEncrypt(parameterMap.get(parameterName), fieldEncrypt)); | ||||||
| @@ -129,23 +128,6 @@ public class MyBatisEncryptInterceptor extends AbstractMyBatisInterceptor { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 处理加密 |  | ||||||
|      * |  | ||||||
|      * @param parameterValue 参数值 |  | ||||||
|      * @param fieldEncrypt   字段加密注解 |  | ||||||
|      * @throws Exception / |  | ||||||
|      */ |  | ||||||
|     private Object doEncrypt(Object parameterValue, FieldEncrypt fieldEncrypt) throws Exception { |  | ||||||
|         if (null == parameterValue) { |  | ||||||
|             return null; |  | ||||||
|         } |  | ||||||
|         IEncryptor encryptor = super.getEncryptor(fieldEncrypt); |  | ||||||
|         // 优先获取自定义对称加密算法密钥,获取不到时再获取全局配置 |  | ||||||
|         String password = ObjectUtil.defaultIfBlank(fieldEncrypt.password(), properties.getPassword()); |  | ||||||
|         return encryptor.encrypt(parameterValue.toString(), password, properties.getPublicKey()); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 处理加密 |      * 处理加密 | ||||||
|      * |      * | ||||||
| @@ -166,21 +148,21 @@ public class MyBatisEncryptInterceptor extends AbstractMyBatisInterceptor { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 处理 wrapper 的加密情况 |      * 处理 Wrapper 加密 | ||||||
|      * |      * | ||||||
|      * @param wrapper         wrapper 对象 |      * @param wrapper         Wrapper 对象 | ||||||
|      * @param mappedStatement 映射语句 |      * @param mappedStatement 映射语句 | ||||||
|      * @throws Exception / |      * @throws Exception / | ||||||
|      */ |      */ | ||||||
|     private void handleWrapperEncrypt(Wrapper wrapper, MappedStatement mappedStatement) throws Exception { |     private void doEncrypt(Wrapper wrapper, MappedStatement mappedStatement) throws Exception { | ||||||
|         if (wrapper instanceof AbstractWrapper abstractWrapper) { |         if (wrapper instanceof AbstractWrapper abstractWrapper) { | ||||||
|             String sqlSet = abstractWrapper.getSqlSet(); |             String sqlSet = abstractWrapper.getSqlSet(); | ||||||
|             if (StringUtils.isEmpty(sqlSet)) { |             if (CharSequenceUtil.isEmpty(sqlSet)) { | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             String className = CharSequenceUtil.subBefore(mappedStatement.getId(), StringConstants.DOT, true); |             String className = CharSequenceUtil.subBefore(mappedStatement.getId(), StringConstants.DOT, true); | ||||||
|             Class<?> mapperClass = Class.forName(className); |             Class<?> mapperClass = Class.forName(className); | ||||||
|             Optional<Class> baseMapperGenerics = getDoByMapperClass(mapperClass, Optional.empty()); |             Optional<Class> baseMapperGenerics = getEntityTypeByMapperClass(mapperClass, Optional.empty()); | ||||||
|             // 获取不到泛型对象 则不进行下面的逻辑 |             // 获取不到泛型对象 则不进行下面的逻辑 | ||||||
|             if (baseMapperGenerics.isEmpty()) { |             if (baseMapperGenerics.isEmpty()) { | ||||||
|                 return; |                 return; | ||||||
| @@ -190,7 +172,7 @@ public class MyBatisEncryptInterceptor extends AbstractMyBatisInterceptor { | |||||||
|             // 将 name=#{ew.paramNameValuePairs.xxx},age=#{ew.paramNameValuePairs.xxx} 切出来 |             // 将 name=#{ew.paramNameValuePairs.xxx},age=#{ew.paramNameValuePairs.xxx} 切出来 | ||||||
|             for (String sqlFragment : sqlSet.split(Constants.COMMA)) { |             for (String sqlFragment : sqlSet.split(Constants.COMMA)) { | ||||||
|                 String columnName = sqlFragment.split(Constants.EQUALS)[0]; |                 String columnName = sqlFragment.split(Constants.EQUALS)[0]; | ||||||
|                 // 截取其中的 xxx 字符 :#{ew.paramNameValuePairs.xxx} |                 // 截取其中的 xxx 字符,例如:#{ew.paramNameValuePairs.xxx} | ||||||
|                 String paramNameVal = sqlFragment.split(Constants.EQUALS)[1].substring(25, sqlFragment |                 String paramNameVal = sqlFragment.split(Constants.EQUALS)[1].substring(25, sqlFragment | ||||||
|                     .split(Constants.EQUALS)[1].length() - 1); |                     .split(Constants.EQUALS)[1].length() - 1); | ||||||
|                 Optional<TableFieldInfo> fieldInfo = fieldList.stream() |                 Optional<TableFieldInfo> fieldInfo = fieldList.stream() | ||||||
| @@ -201,22 +183,39 @@ public class MyBatisEncryptInterceptor extends AbstractMyBatisInterceptor { | |||||||
|                     FieldEncrypt fieldEncrypt = tableFieldInfo.getField().getAnnotation(FieldEncrypt.class); |                     FieldEncrypt fieldEncrypt = tableFieldInfo.getField().getAnnotation(FieldEncrypt.class); | ||||||
|                     if (fieldEncrypt != null) { |                     if (fieldEncrypt != null) { | ||||||
|                         Map<String, Object> paramNameValuePairs = abstractWrapper.getParamNameValuePairs(); |                         Map<String, Object> paramNameValuePairs = abstractWrapper.getParamNameValuePairs(); | ||||||
|                         Object o = paramNameValuePairs.get(paramNameVal); |                         paramNameValuePairs.put(paramNameVal, this.doEncrypt(paramNameValuePairs | ||||||
|                         paramNameValuePairs.put(paramNameVal, this.doEncrypt(o, fieldEncrypt)); |                             .get(paramNameVal), fieldEncrypt)); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 处理加密 | ||||||
|  |      * | ||||||
|  |      * @param parameterValue 参数值 | ||||||
|  |      * @param fieldEncrypt   字段加密注解 | ||||||
|  |      * @throws Exception / | ||||||
|  |      */ | ||||||
|  |     private Object doEncrypt(Object parameterValue, FieldEncrypt fieldEncrypt) throws Exception { | ||||||
|  |         if (null == parameterValue) { | ||||||
|  |             return null; | ||||||
|  |         } | ||||||
|  |         IEncryptor encryptor = super.getEncryptor(fieldEncrypt); | ||||||
|  |         // 优先获取自定义对称加密算法密钥,获取不到时再获取全局配置 | ||||||
|  |         String password = ObjectUtil.defaultIfBlank(fieldEncrypt.password(), properties.getPassword()); | ||||||
|  |         return encryptor.encrypt(parameterValue.toString(), password, properties.getPublicKey()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 从 Mapper 获取泛型 |      * 从 Mapper 获取泛型 | ||||||
|      * |      * | ||||||
|      * @param mapperClass      mapper class |      * @param mapperClass Mapper class | ||||||
|      * @param tempResult  临时存储的泛型对象 |      * @param tempResult  临时存储的泛型对象 | ||||||
|      * @return domain 对象 |      * @return 泛型 | ||||||
|      */ |      */ | ||||||
|     private static Optional<Class> getDoByMapperClass(Class<?> mapperClass, Optional<Class> tempResult) { |     private static Optional<Class> getEntityTypeByMapperClass(Class<?> mapperClass, Optional<Class> tempResult) { | ||||||
|         Type[] genericInterfaces = mapperClass.getGenericInterfaces(); |         Type[] genericInterfaces = mapperClass.getGenericInterfaces(); | ||||||
|         Optional<Class> result = tempResult; |         Optional<Class> result = tempResult; | ||||||
|         for (Type genericInterface : genericInterfaces) { |         for (Type genericInterface : genericInterfaces) { | ||||||
| @@ -225,15 +224,16 @@ public class MyBatisEncryptInterceptor extends AbstractMyBatisInterceptor { | |||||||
|                 Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); |                 Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); | ||||||
|                 // 如果匹配上 BaseMapper 且泛型参数是 Class 类型,则直接返回 |                 // 如果匹配上 BaseMapper 且泛型参数是 Class 类型,则直接返回 | ||||||
|                 if (rawType.equals(BaseMapper.class)) { |                 if (rawType.equals(BaseMapper.class)) { | ||||||
|                     return actualTypeArguments[0] instanceof Class ? |                     return actualTypeArguments[0] instanceof Class | ||||||
|                             Optional.of((Class) actualTypeArguments[0]) : result; |                         ? Optional.of((Class)actualTypeArguments[0]) | ||||||
|  |                         : result; | ||||||
|                 } else if (rawType instanceof Class interfaceClass) { |                 } else if (rawType instanceof Class interfaceClass) { | ||||||
|                     // 如果泛型参数是 Class 类型,则传递给递归调用 |                     // 如果泛型参数是 Class 类型,则传递给递归调用 | ||||||
|                     if (actualTypeArguments[0] instanceof Class tempResultClass) { |                     if (actualTypeArguments[0] instanceof Class tempResultClass) { | ||||||
|                         result = Optional.of(tempResultClass); |                         result = Optional.of(tempResultClass); | ||||||
|                     } |                     } | ||||||
|                     // 递归调用,继续查找 |                     // 递归调用,继续查找 | ||||||
|                     Optional<Class> innerResult = getDoByMapperClass(interfaceClass, result); |                     Optional<Class> innerResult = getEntityTypeByMapperClass(interfaceClass, result); | ||||||
|                     if (innerResult.isPresent()) { |                     if (innerResult.isPresent()) { | ||||||
|                         return innerResult; |                         return innerResult; | ||||||
|                     } |                     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user