diff --git a/pom.xml b/pom.xml index ba001d2..679ef5b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.3 + 1.5.4 pom ZKH Framework A Java framework for ZKH applications diff --git a/zkh-common/pom.xml b/zkh-common/pom.xml index 91c7c28..a3bbfc2 100644 --- a/zkh-common/pom.xml +++ b/zkh-common/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.3 + 1.5.4 zkh-common diff --git a/zkh-common/src/main/java/vip/jcfd/common/core/BaseEntity.java b/zkh-common/src/main/java/vip/jcfd/common/core/BaseEntity.java index 76b5f72..7a5e0df 100644 --- a/zkh-common/src/main/java/vip/jcfd/common/core/BaseEntity.java +++ b/zkh-common/src/main/java/vip/jcfd/common/core/BaseEntity.java @@ -8,72 +8,73 @@ import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; +import java.io.Serializable; import java.time.LocalDateTime; @MappedSuperclass @EntityListeners(AuditingEntityListener.class) -public class BaseEntity { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long id; +public class BaseEntity implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long id; - @Column - @CreatedDate - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; + @Column + @CreatedDate + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; - @Column - @LastModifiedDate - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; + @Column + @LastModifiedDate + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; - @Column - @CreatedBy - private String createBy; + @Column + @CreatedBy + private String createBy; - @Column - @LastModifiedBy - private String updateBy; + @Column + @LastModifiedBy + private String updateBy; - public Long getId() { - return id; - } + public Long getId() { + return id; + } - public void setId(Long id) { - this.id = id; - } + public void setId(Long id) { + this.id = id; + } - public LocalDateTime getCreateTime() { - return createTime; - } + public LocalDateTime getCreateTime() { + return createTime; + } - public void setCreateTime(LocalDateTime createTime) { - this.createTime = createTime; - } + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } - public LocalDateTime getUpdateTime() { - return updateTime; - } + public LocalDateTime getUpdateTime() { + return updateTime; + } - public void setUpdateTime(LocalDateTime updateTime) { - this.updateTime = updateTime; - } + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } - public String getCreateBy() { - return createBy; - } + public String getCreateBy() { + return createBy; + } - public void setCreateBy(String createBy) { - this.createBy = createBy; - } + public void setCreateBy(String createBy) { + this.createBy = createBy; + } - public String getUpdateBy() { - return updateBy; - } + public String getUpdateBy() { + return updateBy; + } - public void setUpdateBy(String updateBy) { - this.updateBy = updateBy; - } + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } } diff --git a/zkh-data/pom.xml b/zkh-data/pom.xml index 4795d31..f1d2b3a 100644 --- a/zkh-data/pom.xml +++ b/zkh-data/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.3 + 1.5.4 zkh-data diff --git a/zkh-file/pom.xml b/zkh-file/pom.xml index 2f83daa..fcedc59 100644 --- a/zkh-file/pom.xml +++ b/zkh-file/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.3 + 1.5.4 zkh-file diff --git a/zkh-log/pom.xml b/zkh-log/pom.xml index 2ab14ed..804a008 100644 --- a/zkh-log/pom.xml +++ b/zkh-log/pom.xml @@ -6,7 +6,7 @@ vip.jcfd zkh-framework - 1.5.3 + 1.5.4 zkh-log diff --git a/zkh-web/pom.xml b/zkh-web/pom.xml index c9580e5..84947f3 100644 --- a/zkh-web/pom.xml +++ b/zkh-web/pom.xml @@ -7,7 +7,7 @@ vip.jcfd zkh-framework - 1.5.3 + 1.5.4 zkh-web diff --git a/zkh-web/src/main/java/vip/jcfd/web/config/JacksonConfig.java b/zkh-web/src/main/java/vip/jcfd/web/config/JacksonConfig.java new file mode 100644 index 0000000..68e5e54 --- /dev/null +++ b/zkh-web/src/main/java/vip/jcfd/web/config/JacksonConfig.java @@ -0,0 +1,56 @@ +package vip.jcfd.web.config; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.io.IOException; +import java.time.ZoneId; +import java.util.Locale; +import java.util.TimeZone; + + +@Configuration +public class JacksonConfig { + + /** + * Configures Jackson mapper with locale, timezone, date format, serializer + */ + @Bean + public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() { + return jacksonObjectMapperBuilder -> { + jacksonObjectMapperBuilder.locale(Locale.CHINA); + jacksonObjectMapperBuilder.timeZone(TimeZone.getTimeZone(ZoneId.of("Asia/Shanghai"))); + jacksonObjectMapperBuilder.simpleDateFormat("yyyy-MM-dd HH:mm:ss"); + jacksonObjectMapperBuilder.serializers(new LongSerializer()); + jacksonObjectMapperBuilder.deserializers(new LongDeserializer()); + }; + } + + public static class LongSerializer extends JsonSerializer { + @Override + public void serialize(Long value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + if (value == null) { + gen.writeNull(); + return; + } + gen.writeString(String.valueOf(value)); + } + } + + public static class LongDeserializer extends JsonDeserializer { + @Override + public Long deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + if (p.getText() == null) { + return null; + } + return Long.parseLong(p.getText()); + } + } +}