feat(response): 更新 response 序列化方案
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package mjkf.xinke.main.common.http;
|
package mjkf.xinke.main.common.http;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonNaming;
|
||||||
import com.jgy.xxs.core.http.NcMeta;
|
import com.jgy.xxs.core.http.NcMeta;
|
||||||
import com.jgy.xxs.core.http.NcPagination;
|
import com.jgy.xxs.core.http.NcPagination;
|
||||||
import com.jgy.xxs.core.http.resp.HttpResponse;
|
import com.jgy.xxs.core.http.resp.HttpResponse;
|
||||||
@@ -9,6 +11,7 @@ import lombok.Getter;
|
|||||||
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
|
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
|
||||||
public class FuHttpResponse<T> extends NcHttpResponse<T> {
|
public class FuHttpResponse<T> extends NcHttpResponse<T> {
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private NcMeta meta;
|
private NcMeta meta;
|
||||||
|
@@ -0,0 +1,58 @@
|
|||||||
|
package mjkf.xinke.main.config;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
|
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NcHttpResponseConfig
|
||||||
|
*
|
||||||
|
* @author han0
|
||||||
|
* @date 2019-11-21
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class NcHttpResponseConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 替换对Response的转换mapper,此处可以自定义返回统一的json格式转换器
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
|
||||||
|
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
|
||||||
|
|
||||||
|
// 设置日期格式
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
|
||||||
|
// objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
|
||||||
|
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||||
|
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
||||||
|
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||||
|
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
||||||
|
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
|
||||||
|
objectMapper.registerModule(javaTimeModule);
|
||||||
|
mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);
|
||||||
|
|
||||||
|
// 设置中文编码格式
|
||||||
|
var list = List.of(MediaType.APPLICATION_JSON_UTF8);
|
||||||
|
mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);
|
||||||
|
return mappingJackson2HttpMessageConverter;
|
||||||
|
}
|
||||||
|
}
|
@@ -8,9 +8,8 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonNaming;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -30,6 +29,7 @@ import mjkf.xinke.main.model.vo.MaterialEditRequest;
|
|||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
|
||||||
@FieldNameConstants
|
@FieldNameConstants
|
||||||
@TableName("MATERIAL")
|
@TableName("MATERIAL")
|
||||||
@ApiModel(value = "Material对象", description = "材料")
|
@ApiModel(value = "Material对象", description = "材料")
|
||||||
@@ -45,8 +45,6 @@ public class Material extends Model<Material> {
|
|||||||
@TableField("UPDATE_USER_NAME")
|
@TableField("UPDATE_USER_NAME")
|
||||||
private String updateUserName;
|
private String updateUserName;
|
||||||
|
|
||||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
@ApiModelProperty("最后更新时间")
|
@ApiModelProperty("最后更新时间")
|
||||||
@TableField("UPDATE_TIME")
|
@TableField("UPDATE_TIME")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
@@ -59,8 +57,6 @@ public class Material extends Model<Material> {
|
|||||||
@TableField("CREATE_USER_NAME")
|
@TableField("CREATE_USER_NAME")
|
||||||
private String createUserName;
|
private String createUserName;
|
||||||
|
|
||||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
@ApiModelProperty("创建时间")
|
@ApiModelProperty("创建时间")
|
||||||
@TableField("CREATE_TIME")
|
@TableField("CREATE_TIME")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
@@ -73,8 +69,6 @@ public class Material extends Model<Material> {
|
|||||||
@TableField("DELETE_USER_NAME")
|
@TableField("DELETE_USER_NAME")
|
||||||
private String deleteUserName;
|
private String deleteUserName;
|
||||||
|
|
||||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
@ApiModelProperty("删除时间")
|
@ApiModelProperty("删除时间")
|
||||||
@TableField("DELETE_TIME")
|
@TableField("DELETE_TIME")
|
||||||
private LocalDateTime deleteTime;
|
private LocalDateTime deleteTime;
|
||||||
|
Reference in New Issue
Block a user