HomeIndexVO.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.xuekairui.quiz.vo;
  2. import com.fasterxml.jackson.annotation.JsonInclude;
  3. import lombok.AllArgsConstructor;
  4. import lombok.Builder;
  5. import lombok.Data;
  6. import lombok.NoArgsConstructor;
  7. import java.util.List;
  8. /**
  9. * 首页聚合信息
  10. */
  11. @Data
  12. @Builder
  13. @NoArgsConstructor
  14. @AllArgsConstructor
  15. @JsonInclude(JsonInclude.Include.NON_NULL)
  16. public class HomeIndexVO {
  17. private ExamInfoVO examInfo;
  18. private DailyPracticeVO dailyPractice;
  19. private List<HomeSubjectVO> subjects;
  20. private List<LatestExamPaperVO> latestExamPapers;
  21. @Data
  22. @Builder
  23. @NoArgsConstructor
  24. @AllArgsConstructor
  25. @JsonInclude(JsonInclude.Include.NON_NULL)
  26. public static class ExamInfoVO {
  27. private String name;
  28. private String examDate;
  29. private Long daysLeft;
  30. }
  31. @Data
  32. @Builder
  33. @NoArgsConstructor
  34. @AllArgsConstructor
  35. @JsonInclude(JsonInclude.Include.NON_NULL)
  36. public static class DailyPracticeVO {
  37. private Boolean hasDone;
  38. private Long doneCount;
  39. private Integer totalCount;
  40. }
  41. @Data
  42. @Builder
  43. @NoArgsConstructor
  44. @AllArgsConstructor
  45. @JsonInclude(JsonInclude.Include.NON_NULL)
  46. public static class HomeSubjectVO {
  47. private Long id;
  48. private String name;
  49. private String icon;
  50. private Integer totalCount;
  51. private Long doneCount;
  52. private Integer progress;
  53. }
  54. @Data
  55. @Builder
  56. @NoArgsConstructor
  57. @AllArgsConstructor
  58. @JsonInclude(JsonInclude.Include.NON_NULL)
  59. public static class LatestExamPaperVO {
  60. private Integer year;
  61. private Long subjectId;
  62. private String subjectName;
  63. private Long questionCount;
  64. }
  65. }