CodeWorkVO.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package nju.seec.SEECdemo.logic.vo;
  2. import lombok.Data;
  3. import nju.seec.SEECdemo.data.entity.assignment.Code;
  4. import nju.seec.SEECdemo.data.entity.assignment.CodeResult;
  5. import nju.seec.SEECdemo.logic.service.impl.assignment.mock.MockGroup;
  6. import nju.seec.SEECdemo.util.enums.AssignmentStatus;
  7. import org.springframework.beans.BeanUtils;
  8. import java.util.List;
  9. import java.util.Set;
  10. import java.util.stream.Collectors;
  11. @Data
  12. public class CodeWorkVO {
  13. private Integer id;
  14. private String name;
  15. private String description;
  16. private AssignmentStatus status;
  17. private String courseName;
  18. private Set<NestedRecord> records;
  19. public CodeWorkVO(Code assignment, String courseName, List<MockGroup> groupList){
  20. BeanUtils.copyProperties(assignment, this);
  21. this.courseName = courseName;
  22. this.records = assignment.getResultSet().stream().map(c->{
  23. MockGroup group = groupList.stream().filter(g->g.getId()==c.getGroupId()).findFirst().get();
  24. return new NestedRecord(c, group);
  25. }).collect(Collectors.toSet());
  26. }
  27. @Data
  28. public static class NestedRecord {
  29. private Integer id;
  30. private NestedGroup group;
  31. public NestedRecord(CodeResult assignmentResult, MockGroup group){
  32. this.id = assignmentResult.getId();
  33. this.group = new NestedGroup(group);
  34. }
  35. }
  36. @Data
  37. public static class NestedGroup {
  38. private Integer id;
  39. private String name;
  40. public NestedGroup(MockGroup group){
  41. this.id = group.getId();
  42. this.name = group.getName();
  43. }
  44. }
  45. }