SubmissionVo.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package space.anyi.serve.entity.contest;
  2. import io.swagger.v3.oas.annotations.media.Schema;
  3. import java.time.LocalDateTime;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.Objects;
  7. @Schema(description = "提交记录响应展示对象")
  8. public class SubmissionVo {
  9. @Schema(description = "提交ID")
  10. private Long id;
  11. @Schema(description = "题目ID")
  12. private Long problemId;
  13. @Schema(description = "比赛ID,练习提交为null")
  14. private Long contestId;
  15. @Schema(description = "提交语言")
  16. private String language;
  17. @Schema(description = "判题状态:SUBMITTED-已提交,JUDGING-判题中,AC-通过,WA-答案错误,TLE-超时,MLE-内存超限,RE-运行错误,CE-编译失败,SE-系统错误")
  18. private String status;
  19. @Schema(description = "执行时间(毫秒)")
  20. private Integer timeUsedMs;
  21. @Schema(description = "内存使用(KB)")
  22. private Integer memoryUsedKb;
  23. @Schema(description = "得分")
  24. private Integer score;
  25. @Schema(description = "总测试用例数")
  26. private Integer totalTestCases;
  27. @Schema(description = "通过测试用例数")
  28. private Integer passedTestCases;
  29. @Schema(description = "判题详情(CE/SE时展示错误信息)")
  30. private String judgeDetail;
  31. @Schema(description = "提交时间")
  32. private LocalDateTime createdAt;
  33. public static SubmissionVo from(Submission submission) {
  34. SubmissionVo vo = new SubmissionVo();
  35. if (Objects.isNull(submission)) {
  36. return vo;
  37. }
  38. vo.setId(submission.getId());
  39. vo.setProblemId(submission.getProblemId());
  40. vo.setContestId(submission.getContestId());
  41. vo.setLanguage(submission.getLanguage());
  42. vo.setStatus(submission.getStatus());
  43. vo.setTimeUsedMs(submission.getTimeUsedMs());
  44. vo.setMemoryUsedKb(submission.getMemoryUsedKb());
  45. vo.setScore(submission.getScore());
  46. vo.setTotalTestCases(submission.getTotalTestCases());
  47. vo.setPassedTestCases(submission.getPassedTestCases());
  48. vo.setJudgeDetail(submission.getJudgeDetail());
  49. vo.setCreatedAt(submission.getCreatedAt());
  50. return vo;
  51. }
  52. public static List<SubmissionVo> from(List<Submission> list) {
  53. List<SubmissionVo> result = new ArrayList<>();
  54. for (Submission submission : list) {
  55. result.add(SubmissionVo.from(submission));
  56. }
  57. return result;
  58. }
  59. public Long getId() {
  60. return id;
  61. }
  62. public void setId(Long id) {
  63. this.id = id;
  64. }
  65. public Long getProblemId() {
  66. return problemId;
  67. }
  68. public void setProblemId(Long problemId) {
  69. this.problemId = problemId;
  70. }
  71. public Long getContestId() {
  72. return contestId;
  73. }
  74. public void setContestId(Long contestId) {
  75. this.contestId = contestId;
  76. }
  77. public String getLanguage() {
  78. return language;
  79. }
  80. public void setLanguage(String language) {
  81. this.language = language;
  82. }
  83. public String getStatus() {
  84. return status;
  85. }
  86. public void setStatus(String status) {
  87. this.status = status;
  88. }
  89. public Integer getTimeUsedMs() {
  90. return timeUsedMs;
  91. }
  92. public void setTimeUsedMs(Integer timeUsedMs) {
  93. this.timeUsedMs = timeUsedMs;
  94. }
  95. public Integer getMemoryUsedKb() {
  96. return memoryUsedKb;
  97. }
  98. public void setMemoryUsedKb(Integer memoryUsedKb) {
  99. this.memoryUsedKb = memoryUsedKb;
  100. }
  101. public Integer getScore() {
  102. return score;
  103. }
  104. public void setScore(Integer score) {
  105. this.score = score;
  106. }
  107. public Integer getTotalTestCases() {
  108. return totalTestCases;
  109. }
  110. public void setTotalTestCases(Integer totalTestCases) {
  111. this.totalTestCases = totalTestCases;
  112. }
  113. public Integer getPassedTestCases() {
  114. return passedTestCases;
  115. }
  116. public void setPassedTestCases(Integer passedTestCases) {
  117. this.passedTestCases = passedTestCases;
  118. }
  119. public String getJudgeDetail() {
  120. return judgeDetail;
  121. }
  122. public void setJudgeDetail(String judgeDetail) {
  123. this.judgeDetail = judgeDetail;
  124. }
  125. public LocalDateTime getCreatedAt() {
  126. return createdAt;
  127. }
  128. public void setCreatedAt(LocalDateTime createdAt) {
  129. this.createdAt = createdAt;
  130. }
  131. }