疯狂的狮子li
2023-02-17 cb8056882898d5e1d23d06a82a03d8697f4c844d
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,18 @@
     *
     * @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) {
            // 判断第一个元素是否含有注解。如果没有直接返回,提高效率
            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());