Browse Source

add LocalDateTime deserializer

UsagiHao 5 năm trước cách đây
mục cha
commit
295a74d511

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

@@ -79,6 +79,8 @@ public class JudgementClient implements JudgementApi {
             Request.Builder builder = new Request.Builder()
                     .addHeader("Authorization", token);
 
+            String param = objectMapper.writeValueAsString(studentAnswerDTO);
+
             builder = builder
                     .url(host + "/api/judgement/submit")
                     .post(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), objectMapper.writeValueAsString(studentAnswerDTO)));

+ 19 - 1
judgement-server/src/main/java/cn/seecoder/judgement/controller/JudgementController.java

@@ -4,9 +4,16 @@ import cn.seecoder.judgement.dto.StudentAnswerDTO;
 import cn.seecoder.judgement.service.JudgementService;
 import cn.seecoder.judgement.response.ResourceResponse;
 import cn.seecoder.judgement.response.Response;
+import cn.seecoder.judgement.utils.LocalDateTimeDeserializer;
+import cn.seecoder.judgement.utils.LocalDateTimeSerializer;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDateTime;
+
 /**
  * author:hr
  */
@@ -20,7 +27,18 @@ public class JudgementController {
     }
 
     @RequestMapping("/submit")
-    public Response submitQuestionsStudentAnswer(@Validated @RequestBody StudentAnswerDTO studentAnswerDTO) {
+    public Response submitQuestionsStudentAnswer(@RequestBody String studentAnswer) {
+        ObjectMapper objectMapper = new ObjectMapper();
+        JavaTimeModule timeModule = new JavaTimeModule();
+        timeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer());
+        timeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
+        objectMapper.registerModule(timeModule);
+        StudentAnswerDTO studentAnswerDTO = null;
+        try {
+            studentAnswerDTO = objectMapper.readValue(studentAnswer, StudentAnswerDTO.class);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
         return new ResourceResponse(judgementService.submitQuestionsStudentAnswer(studentAnswerDTO));
     }
 }