修复字典导出序列化报错问题
This commit is contained in:
		| @@ -2,6 +2,7 @@ package com.ruoyi.common.utils; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import java.util.List; | ||||
| import com.alibaba.fastjson2.JSONArray; | ||||
| import com.ruoyi.common.constant.Constants; | ||||
| import com.ruoyi.common.core.domain.entity.SysDictData; | ||||
| import com.ruoyi.common.core.redis.RedisCache; | ||||
| @@ -38,10 +39,10 @@ public class DictUtils | ||||
|      */ | ||||
|     public static List<SysDictData> getDictCache(String key) | ||||
|     { | ||||
|         Object cacheObj = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); | ||||
|         if (StringUtils.isNotNull(cacheObj)) | ||||
|         JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); | ||||
|         if (StringUtils.isNotNull(arrayCache)) | ||||
|         { | ||||
|             return StringUtils.cast(cacheObj); | ||||
|             return arrayCache.toList(SysDictData.class); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
| @@ -83,27 +84,30 @@ public class DictUtils | ||||
|         StringBuilder propertyString = new StringBuilder(); | ||||
|         List<SysDictData> datas = getDictCache(dictType); | ||||
|  | ||||
|         if (StringUtils.containsAny(separator, dictValue) && StringUtils.isNotEmpty(datas)) | ||||
|         if (StringUtils.isNotNull(datas)) | ||||
|         { | ||||
|             for (SysDictData dict : datas) | ||||
|             if (StringUtils.containsAny(separator, dictValue)) | ||||
|             { | ||||
|                 for (String value : dictValue.split(separator)) | ||||
|                 for (SysDictData dict : datas) | ||||
|                 { | ||||
|                     if (value.equals(dict.getDictValue())) | ||||
|                     for (String value : dictValue.split(separator)) | ||||
|                     { | ||||
|                         propertyString.append(dict.getDictLabel()).append(separator); | ||||
|                         break; | ||||
|                         if (value.equals(dict.getDictValue())) | ||||
|                         { | ||||
|                             propertyString.append(dict.getDictLabel()).append(separator); | ||||
|                             break; | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             for (SysDictData dict : datas) | ||||
|             else | ||||
|             { | ||||
|                 if (dictValue.equals(dict.getDictValue())) | ||||
|                 for (SysDictData dict : datas) | ||||
|                 { | ||||
|                     return dict.getDictLabel(); | ||||
|                     if (dictValue.equals(dict.getDictValue())) | ||||
|                     { | ||||
|                         return dict.getDictLabel(); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|   | ||||
| @@ -3,13 +3,9 @@ package com.ruoyi.framework.config; | ||||
| import java.nio.charset.Charset; | ||||
| import org.springframework.data.redis.serializer.RedisSerializer; | ||||
| import org.springframework.data.redis.serializer.SerializationException; | ||||
| import org.springframework.util.Assert; | ||||
| import com.alibaba.fastjson2.JSON; | ||||
| import com.alibaba.fastjson2.JSONReader; | ||||
| import com.alibaba.fastjson2.JSONWriter; | ||||
| import com.fasterxml.jackson.databind.JavaType; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
| import com.fasterxml.jackson.databind.type.TypeFactory; | ||||
|  | ||||
| /** | ||||
|  * Redis使用FastJson序列化 | ||||
| @@ -18,9 +14,6 @@ import com.fasterxml.jackson.databind.type.TypeFactory; | ||||
|  */ | ||||
| public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> | ||||
| { | ||||
|     @SuppressWarnings("unused") | ||||
|     private ObjectMapper objectMapper = new ObjectMapper(); | ||||
|  | ||||
|     public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); | ||||
|  | ||||
|     private Class<T> clazz; | ||||
| @@ -52,15 +45,4 @@ public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> | ||||
|  | ||||
|         return JSON.parseObject(str, clazz, JSONReader.Feature.SupportAutoType); | ||||
|     } | ||||
|  | ||||
|     public void setObjectMapper(ObjectMapper objectMapper) | ||||
|     { | ||||
|         Assert.notNull(objectMapper, "'objectMapper' must not be null"); | ||||
|         this.objectMapper = objectMapper; | ||||
|     } | ||||
|  | ||||
|     protected JavaType getJavaType(Class<?> clazz) | ||||
|     { | ||||
|         return TypeFactory.defaultInstance().constructType(clazz); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -8,11 +8,6 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; | ||||
| import org.springframework.data.redis.core.RedisTemplate; | ||||
| import org.springframework.data.redis.core.script.DefaultRedisScript; | ||||
| import org.springframework.data.redis.serializer.StringRedisSerializer; | ||||
| import com.fasterxml.jackson.annotation.JsonAutoDetect; | ||||
| import com.fasterxml.jackson.annotation.JsonTypeInfo; | ||||
| import com.fasterxml.jackson.annotation.PropertyAccessor; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
| import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; | ||||
|  | ||||
| /** | ||||
|  * redis配置 | ||||
| @@ -32,11 +27,6 @@ public class RedisConfig extends CachingConfigurerSupport | ||||
|  | ||||
|         FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class); | ||||
|  | ||||
|         ObjectMapper mapper = new ObjectMapper(); | ||||
|         mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); | ||||
|         mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); | ||||
|         serializer.setObjectMapper(mapper); | ||||
|  | ||||
|         // 使用StringRedisSerializer来序列化和反序列化redis的key值 | ||||
|         template.setKeySerializer(new StringRedisSerializer()); | ||||
|         template.setValueSerializer(serializer); | ||||
|   | ||||
| @@ -11,7 +11,7 @@ import DictOptions from './DictOptions' | ||||
| export default class DictMeta { | ||||
|   constructor(options) { | ||||
|     this.type = options.type | ||||
|     this.request = options.request, | ||||
|     this.request = options.request | ||||
|     this.responseConverter = options.responseConverter | ||||
|     this.labelField = options.labelField | ||||
|     this.valueField = options.valueField | ||||
|   | ||||
		Reference in New Issue
	
	Block a user