feat(response): 更新 response 序列化方案
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package mjkf.xinke.main.common.http;
|
||||
|
||||
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.NcPagination;
|
||||
import com.jgy.xxs.core.http.resp.HttpResponse;
|
||||
@@ -9,6 +11,7 @@ import lombok.Getter;
|
||||
|
||||
|
||||
@Getter
|
||||
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
|
||||
public class FuHttpResponse<T> extends NcHttpResponse<T> {
|
||||
@JsonIgnore
|
||||
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.time.LocalDateTime;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonNaming;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
@@ -30,6 +29,7 @@ import mjkf.xinke.main.model.vo.MaterialEditRequest;
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
|
||||
@FieldNameConstants
|
||||
@TableName("MATERIAL")
|
||||
@ApiModel(value = "Material对象", description = "材料")
|
||||
@@ -45,8 +45,6 @@ public class Material extends Model<Material> {
|
||||
@TableField("UPDATE_USER_NAME")
|
||||
private String updateUserName;
|
||||
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@ApiModelProperty("最后更新时间")
|
||||
@TableField("UPDATE_TIME")
|
||||
private LocalDateTime updateTime;
|
||||
@@ -59,8 +57,6 @@ public class Material extends Model<Material> {
|
||||
@TableField("CREATE_USER_NAME")
|
||||
private String createUserName;
|
||||
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@ApiModelProperty("创建时间")
|
||||
@TableField("CREATE_TIME")
|
||||
private LocalDateTime createTime;
|
||||
@@ -73,8 +69,6 @@ public class Material extends Model<Material> {
|
||||
@TableField("DELETE_USER_NAME")
|
||||
private String deleteUserName;
|
||||
|
||||
@JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@ApiModelProperty("删除时间")
|
||||
@TableField("DELETE_TIME")
|
||||
private LocalDateTime deleteTime;
|
||||
|
Reference in New Issue
Block a user