5 changed files with 81 additions and 9 deletions
@ -0,0 +1,46 @@
@@ -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 @@
@@ -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