Selaa lähdekoodia

add LocalDateTime serializer

UsagiHao 5 vuotta sitten
vanhempi
commit
62d45e9143

+ 8 - 0
judgement-client/src/main/java/cn/seecoder/judgement/JudgementClient.java

@@ -1,15 +1,19 @@
 package cn.seecoder.judgement;
 
 import cn.seecoder.judgement.dto.StudentAnswerDTO;
+import cn.seecoder.judgement.utils.LocalDateTimeDeserializer;
+import cn.seecoder.judgement.utils.LocalDateTimeSerializer;
 import cn.seecoder.judgement.vo.JudgedAnswersVO;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import okhttp3.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -68,6 +72,10 @@ public class JudgementClient implements JudgementApi {
     public JudgedAnswersVO submitQuestionStudentAnswer(StudentAnswerDTO studentAnswerDTO) throws JudgementException{
         try {
             ObjectMapper objectMapper = new ObjectMapper();
+            JavaTimeModule timeModule = new JavaTimeModule();
+            timeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
+            timeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
+            objectMapper.registerModule(timeModule);
             Request.Builder builder = new Request.Builder()
                     .addHeader("Authorization", token);
 

+ 0 - 3
judgement-common/src/main/java/cn/seecoder/judgement/dto/StudentAnswerDTO.java

@@ -1,6 +1,5 @@
 package cn.seecoder.judgement.dto;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -35,12 +34,10 @@ public class StudentAnswerDTO implements Serializable {
         @NotNull(message = "缺少答案")
         private Object answer;
 
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
         @NotNull(message = "缺少做题开始时间")
         @Past(message = "开始时间错误")
         private LocalDateTime startAt;
 
-        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
         @NotNull(message = "缺少做题结束时间")
         @Past(message = "结束时间错误")
         private LocalDateTime endAt;