diff --git a/backend/src/main/java/lsgwr/exam/ExamApplication.java b/backend/src/main/java/lsgwr/exam/ExamApplication.java index 28458d1..95dd0f1 100644 --- a/backend/src/main/java/lsgwr/exam/ExamApplication.java +++ b/backend/src/main/java/lsgwr/exam/ExamApplication.java @@ -3,6 +3,9 @@ package lsgwr.exam; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * 这是Spring Boot应用程序的主要类。它作为应用程序的入口点,启动Spring Boot应用程序上下文。 + */ @SpringBootApplication public class ExamApplication { diff --git a/backend/src/main/java/lsgwr/exam/controller/ExamController.java b/backend/src/main/java/lsgwr/exam/controller/ExamController.java index 99b50ad..852805f 100644 --- a/backend/src/main/java/lsgwr/exam/controller/ExamController.java +++ b/backend/src/main/java/lsgwr/exam/controller/ExamController.java @@ -22,11 +22,16 @@ import java.util.List; @RestController @Api(tags = "Exam APIs") +//将此控制器中的所有端点映射到/api/exam URL路径 @RequestMapping("/api/exam") public class ExamController { - @Autowired + @Autowired //注入一个ExamService实例,用于处理与考试和问题相关的业务逻辑 private ExamService examService; + /** + * @Description: 使用examService.getQuestionAll()获取数据,并将其包装在ResultVO对象中,用于获取所有考试列表 + * @ApiOperation注解用于描述API操作,它将显示在SwaggerUI中 + */ @GetMapping("/question/all") @ApiOperation("获取所有问题的列表") // 获取全部问题列表。 @@ -66,6 +71,13 @@ ResultVO> getQuestionAll() { } } + /** + * 创建问题 + * @Description: 从请求体中获取一个QuestionCreateSimplifyVo对象,将其属性复制到QuestionCreateVo,设置创建者的ID,并使用examService.questionCreate()创建问题。 + * @param questionCreateSimplifyVo 从请求体中获取的QuestionCreateSimplifyVo对象 + * @param request HttpServletRequest对象,用于获取当前用户的ID + * @return ResultVO 对象,包含操作结果信息 + */ @PostMapping("/question/create") @ApiOperation("创建问题") ResultVO questionCreate(@RequestBody QuestionCreateSimplifyVo questionCreateSimplifyVo, HttpServletRequest request) { @@ -90,6 +102,10 @@ ResultVO> getQuestionAll() { } } + /** + * @Description: 获取全部问题列表,使用examService.getSelections()获取数据,并将其包装在ResultVO对象中 + * @return ResultVO 对象,包含问题列表 + */ @GetMapping("/question/selection") @ApiOperation("获取问题分类的相关选项") // 获取问题分类选项。 @@ -160,6 +176,7 @@ ResultVO getSelections() { // 返回结果。 return resultVO; } + @PostMapping("/create") @ApiOperation("创建考试") ResultVO createExam(@RequestBody ExamCreateVo examCreateVo, HttpServletRequest request) { @@ -202,6 +219,10 @@ ResultVO getSelections() { return resultVO; } + /** + * @Description: 获取考试列表,适配前端卡片列表 + * @return ResultVO> 对象,包含考试列表卡片信息 + */ @GetMapping("/card/list") @ApiOperation("获取考试列表,适配前端卡片列表") ResultVO> getExamCardList() { @@ -221,6 +242,11 @@ ResultVO getSelections() { return resultVO; } + /** + * @Description: 根据考试的id,获取考试详情 + * @param id 考试id + * @return ResultVO 对象,包含考试详情信息 + */ @GetMapping("/detail/{id}") @ApiOperation("根据考试的id,获取考试详情") ResultVO getExamDetail(@PathVariable String id) { @@ -235,6 +261,13 @@ ResultVO getSelections() { return resultVO; } + /** + * @Description: 使用examService.finishExam获取数据,并将其包装在ResultVO对象中,用于考试判分 + * @param examId 考试id + * @param answersMap 用户提交的答案 + * @param request 获取用户id + * @return + */ @PostMapping("/finish/{examId}") @ApiOperation("根据用户提交的答案对指定id的考试判分") // 完成考试 @@ -256,6 +289,11 @@ ResultVO getSelections() { return resultVO; } + /** + * @Description: 使用examService.getExamRecordList获取数据,并将其包装在ResultVO对象中,用于获取当前用户的考试记录 + * @param request 获取用户id + * @return ResultVO> 返回一个包含考试记录列表的ResultVO对象,如果发生异常,则返回一个包含错误信息的ResultVO对象。 + */ @GetMapping("/record/list") @ApiOperation("获取当前用户的考试记录") // 获取考试记录列表。 @@ -274,6 +312,11 @@ ResultVO getSelections() { return resultVO; } + /** + * @Description: 使用examService.getExamRecordDetail获取数据,并将其包装在ResultVO对象中,用于获取指定id的考试记录详情 + * @param recordId 考试记录id + * @return ResultVO 返回一个包含考试记录详情的ResultVO对象,如果发生异常,则返回一个包含错误信息的ResultVO对象。 + */ @GetMapping("/record/detail/{recordId}") @ApiOperation("根据考试记录id获取考试记录详情") ResultVO getExamRecordDetail(@PathVariable String recordId) { diff --git a/backend/src/main/java/lsgwr/exam/vo/ExamCardVo.java b/backend/src/main/java/lsgwr/exam/vo/ExamCardVo.java index f516f89..c9e0b9f 100644 --- a/backend/src/main/java/lsgwr/exam/vo/ExamCardVo.java +++ b/backend/src/main/java/lsgwr/exam/vo/ExamCardVo.java @@ -1,24 +1,38 @@ -/*********************************************************** - * @Description : 考试卡片列表 - * @author : 梁山广(Laing Shan Guang) - * @date : 2019-06-23 19:30 - * @email : liangshanguang2@gmail.com - ***********************************************************/ package lsgwr.exam.vo; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; - +/** + * @Description: 用于表示考试卡片的信息,这个类可以很方便地与JSON数据绑定 + * 用于从API响应中解析考试卡片信息,将考试卡片信息序列化为JSON格式发送到服务器 + * Lombok库的@Data注解用于自动生成getter和setter方法 + * Jackson库的@JsonProperty注解用于指定JSON序列化和反序列化时使用的属性名称。 + */ @Data public class ExamCardVo { + /** + * 考试ID + */ @JsonProperty("id") private String examId; + /** + * 考试名称 + */ @JsonProperty("title") private String examName; + /** + * 考试头像 + */ @JsonProperty("avatar") private String examAvatar; + /** + * 考试描述 + */ @JsonProperty("content") private String examDescription; + /** + * 考试分数 + */ @JsonProperty("score") private Integer examScore; /**