5 changed files with 81 additions and 9 deletions
@ -0,0 +1,46 @@ |
|||||||
|
package com.cloud.kicc.workflow.config; |
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern; |
||||||
|
import com.cloud.kicc.common.core.jackson.KiccJavaTimeModule; |
||||||
|
import com.cloud.kicc.workflow.override.jackson2.ModelRepresentationMixin; |
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper; |
||||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
||||||
|
import org.flowable.ui.modeler.model.ModelRepresentation; |
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; |
||||||
|
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
|
||||||
|
import java.time.ZoneId; |
||||||
|
import java.util.Locale; |
||||||
|
import java.util.TimeZone; |
||||||
|
|
||||||
|
/** |
||||||
|
*<p> |
||||||
|
* 配置Jackson |
||||||
|
*</p> |
||||||
|
* |
||||||
|
* @Author: wangxiang4 |
||||||
|
* @Since: 2023/9/28 |
||||||
|
*/ |
||||||
|
@Configuration |
||||||
|
@ConditionalOnClass(ObjectMapper.class) |
||||||
|
public class JacksonConfig { |
||||||
|
|
||||||
|
@Bean |
||||||
|
public Jackson2ObjectMapperBuilderCustomizer customizer() { |
||||||
|
return builder -> { |
||||||
|
builder.locale(Locale.CHINA); |
||||||
|
builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault())); |
||||||
|
// 针对于Date类型,文本格式化,已经实现前端返回时间戳
|
||||||
|
builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN); |
||||||
|
// 解决返回给前端的Long类型数据失去精度,将Long转换为String
|
||||||
|
builder.serializerByType(Long.class, ToStringSerializer.instance); |
||||||
|
// 设置自定义的 Mixin 类
|
||||||
|
builder.mixIn(ModelRepresentation.class, ModelRepresentationMixin.class); |
||||||
|
// 针对于JDK新时间类,序列化时带有T的问题,自定义格式化字符串
|
||||||
|
builder.modules(new KiccJavaTimeModule()); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
|
||||||
|
|
||||||
|
package com.cloud.kicc.workflow.override.jackson2; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAutoDetect; |
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
||||||
|
|
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
*<p> |
||||||
|
* 序列化模型版本冲突修改时间戳 |
||||||
|
*</p> |
||||||
|
* |
||||||
|
* @Author: wangxiang4 |
||||||
|
* @Since: 2023/9/28 |
||||||
|
*/ |
||||||
|
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, |
||||||
|
getterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY, |
||||||
|
isGetterVisibility = JsonAutoDetect.Visibility.NONE) |
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true) |
||||||
|
public abstract class ModelRepresentationMixin { |
||||||
|
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.NUMBER) |
||||||
|
abstract Date getLastUpdated(); |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue