StudentAnswerDTO.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package cn.seecoder.judgement.dto;
  2. import com.fasterxml.jackson.annotation.JsonFormat;
  3. import lombok.AllArgsConstructor;
  4. import lombok.Builder;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import javax.validation.Valid;
  8. import javax.validation.constraints.NotNull;
  9. import javax.validation.constraints.Past;
  10. import java.io.Serializable;
  11. import java.time.LocalDateTime;
  12. import java.util.Map;
  13. /**
  14. * @author cst
  15. */
  16. @Data
  17. @Builder
  18. @NoArgsConstructor
  19. @AllArgsConstructor
  20. public class StudentAnswerDTO implements Serializable {
  21. // @NotEmpty(message = "回答不能为空")
  22. // private Map<String, Object> answers;
  23. @NotNull(message = "用户id不能为空")
  24. String userId;
  25. @NotNull(message = "缺少做题记录")
  26. @Valid
  27. private Map<String, AnswerRecordDTO> records;
  28. @Data
  29. public static class AnswerRecordDTO {
  30. @NotNull(message = "缺少答案")
  31. private Object answer;
  32. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  33. @NotNull(message = "缺少做题开始时间")
  34. @Past(message = "开始时间错误")
  35. private LocalDateTime startAt;
  36. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  37. @NotNull(message = "缺少做题结束时间")
  38. @Past(message = "结束时间错误")
  39. private LocalDateTime endAt;
  40. }
  41. }