mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-01 02:38:43 +08:00 
			
		
		
		
	【功能优化】全局:LoginUser 新增过期时间,方便判断 token 过期
This commit is contained in:
		| @@ -2,9 +2,9 @@ package cn.iocoder.yudao.framework.jackson.config; | ||||
|  | ||||
| import cn.hutool.core.collection.CollUtil; | ||||
| import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.NumberSerializer; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeDeserializer; | ||||
| import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeSerializer; | ||||
| import cn.iocoder.yudao.framework.common.util.json.databind.NumberSerializer; | ||||
| import cn.iocoder.yudao.framework.common.util.json.databind.TimestampLocalDateTimeDeserializer; | ||||
| import cn.iocoder.yudao.framework.common.util.json.databind.TimestampLocalDateTimeSerializer; | ||||
| import com.fasterxml.jackson.databind.ObjectMapper; | ||||
| import com.fasterxml.jackson.databind.module.SimpleModule; | ||||
| import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; | ||||
|   | ||||
| @@ -1,37 +0,0 @@ | ||||
| package cn.iocoder.yudao.framework.jackson.core.databind; | ||||
|  | ||||
| import com.fasterxml.jackson.core.JsonGenerator; | ||||
| import com.fasterxml.jackson.databind.SerializerProvider; | ||||
| import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; | ||||
|  | ||||
| import java.io.IOException; | ||||
|  | ||||
| /** | ||||
|  * Long 序列化规则 | ||||
|  * | ||||
|  * 会将超长 long 值转换为 string,解决前端 JavaScript 最大安全整数是 2^53-1 的问题 | ||||
|  * | ||||
|  * @author 星语 | ||||
|  */ | ||||
| @JacksonStdImpl | ||||
| public class NumberSerializer extends com.fasterxml.jackson.databind.ser.std.NumberSerializer { | ||||
|  | ||||
|     private static final long MAX_SAFE_INTEGER = 9007199254740991L; | ||||
|     private static final long MIN_SAFE_INTEGER = -9007199254740991L; | ||||
|  | ||||
|     public static final NumberSerializer INSTANCE = new NumberSerializer(Number.class); | ||||
|  | ||||
|     public NumberSerializer(Class<? extends Number> rawType) { | ||||
|         super(rawType); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException { | ||||
|         // 超出范围 序列化位字符串 | ||||
|         if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) { | ||||
|             super.serialize(value, gen, serializers); | ||||
|         } else { | ||||
|             gen.writeString(value.toString()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,27 +0,0 @@ | ||||
| package cn.iocoder.yudao.framework.jackson.core.databind; | ||||
|  | ||||
| import com.fasterxml.jackson.core.JsonParser; | ||||
| import com.fasterxml.jackson.databind.DeserializationContext; | ||||
| import com.fasterxml.jackson.databind.JsonDeserializer; | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.time.Instant; | ||||
| import java.time.LocalDateTime; | ||||
| import java.time.ZoneId; | ||||
|  | ||||
| /** | ||||
|  * 基于时间戳的 LocalDateTime 反序列化器 | ||||
|  * | ||||
|  * @author 老五 | ||||
|  */ | ||||
| public class TimestampLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> { | ||||
|  | ||||
|     public static final TimestampLocalDateTimeDeserializer INSTANCE = new TimestampLocalDateTimeDeserializer(); | ||||
|  | ||||
|     @Override | ||||
|     public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { | ||||
|         // 将 Long 时间戳,转换为 LocalDateTime 对象 | ||||
|         return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault()); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,26 +0,0 @@ | ||||
| package cn.iocoder.yudao.framework.jackson.core.databind; | ||||
|  | ||||
| import com.fasterxml.jackson.core.JsonGenerator; | ||||
| import com.fasterxml.jackson.databind.JsonSerializer; | ||||
| import com.fasterxml.jackson.databind.SerializerProvider; | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.time.LocalDateTime; | ||||
| import java.time.ZoneId; | ||||
|  | ||||
| /** | ||||
|  * 基于时间戳的 LocalDateTime 序列化器 | ||||
|  * | ||||
|  * @author 老五 | ||||
|  */ | ||||
| public class TimestampLocalDateTimeSerializer extends JsonSerializer<LocalDateTime> { | ||||
|  | ||||
|     public static final TimestampLocalDateTimeSerializer INSTANCE = new TimestampLocalDateTimeSerializer(); | ||||
|  | ||||
|     @Override | ||||
|     public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException { | ||||
|         // 将 LocalDateTime 对象,转换为 Long 时间戳 | ||||
|         gen.writeNumber(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV