From fc1779ef86c16c642c90c0c4f3dc0361abfd6bf2 Mon Sep 17 00:00:00 2001 From: zhanglei Date: Tue, 25 Aug 2026 15:05:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=99=E5=9F=B9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cedu/controller/PaperExamController.java | 8 +- .../cedu/controller/app/StudyController.java | 88 +++++++++++++++++++ 2 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 safety-cedu-service/src/main/java/org/qinan/cedu/controller/app/StudyController.java diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperExamController.java b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperExamController.java index bd66cbf4..f75c60f9 100644 --- a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperExamController.java +++ b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/PaperExamController.java @@ -9,17 +9,11 @@ import org.qinan.cedu.model.dto.AnswerQuestionDTO; import org.qinan.cedu.model.dto.StartExamDTO; import org.qinan.cedu.model.dto.SubmitExamDTO; import org.qinan.cedu.model.vo.PaperExamDetailVO; -import org.qinan.cedu.model.vo.PaperExamInfoVO; import org.qinan.cedu.model.vo.StartExamVO; import org.qinan.cedu.service.PaperExamService; import org.qinan.safetyeval.client.dto.SingleResponse; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 考试试卷管理 diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/app/StudyController.java b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/app/StudyController.java new file mode 100644 index 00000000..0cbb30f1 --- /dev/null +++ b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/app/StudyController.java @@ -0,0 +1,88 @@ +package org.qinan.cedu.controller.app; + +import com.jjb.saas.framework.auth.utils.AuthContext; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.qinan.cedu.model.dto.AnswerQuestionDTO; +import org.qinan.cedu.model.dto.StartExamDTO; +import org.qinan.cedu.model.dto.SubmitExamDTO; +import org.qinan.cedu.model.vo.ClassCourseVO; +import org.qinan.cedu.model.vo.ExamStatisticsAndRecordVO; +import org.qinan.cedu.model.vo.PaperExamDetailVO; +import org.qinan.cedu.model.vo.StartExamVO; +import org.qinan.cedu.service.ClassCourseService; +import org.qinan.cedu.service.PaperExamService; +import org.qinan.safetyeval.client.dto.SingleResponse; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 学习模块 + */ +@Api(tags = "学习模块") +@RestController +@RequestMapping("/safetyEval/app/study") +@AllArgsConstructor +public class StudyController { + + private final ClassCourseService classCourseService; + private final PaperExamService paperExamService; + + @ApiOperation("我的学习") + @GetMapping("/myCoursePage") + public SingleResponse> myCoursePage() { + List list = classCourseService.myCoursePage(); + return SingleResponse.success(list); + } + + @ApiOperation("成绩查询") + @GetMapping("/myScoreQuery") + public SingleResponse scoreQuery() { + ExamStatisticsAndRecordVO examStatisticsAndRecordVO = classCourseService.scoreQuery(); + return SingleResponse.success(examStatisticsAndRecordVO); + } + + /** + * 去考试:生成考试记录和用户试题作答记录,返回考试信息(含试题列表及参考答案) + */ + @ApiOperation("去考试") + @PostMapping("/startExam") + public SingleResponse startExam(@Validated @RequestBody StartExamDTO dto) { + dto.setUserId(AuthContext.getUserId()); + return SingleResponse.success(paperExamService.startExam(dto)); + } + + /** + * 作答:保存用户作答答案,判定正确状态并计算作答得分 + */ + @ApiOperation("作答") + @PostMapping("/answerQuestion") + public SingleResponse answerQuestion(@Validated @RequestBody AnswerQuestionDTO dto) { + paperExamService.answerQuestion(dto, AuthContext.getUserId()); + return SingleResponse.success(); + } + + /** + * 交卷:汇总各试题作答得分,更新考试成绩、是否通过并结束考试(携带班级id时保存班级学员考试记录) + */ + @ApiOperation("交卷") + @PostMapping("/submitExam") + public SingleResponse submitExam(@Validated @RequestBody SubmitExamDTO dto) { + paperExamService.submitExam(dto, AuthContext.getUserId()); + return SingleResponse.success(); + } + + /** + * 考试试卷信息查询:根据考试记录id查询试卷考试信息(含试题列表、参考答案及用户作答信息) + */ + @ApiOperation("考试试卷信息查询") + @GetMapping("/exam/info") + public SingleResponse paperExamInfo(@RequestParam("paperExamId") @ApiParam(value = "考试试卷id", required = true) Long paperExamId) { + PaperExamDetailVO examInfo = paperExamService.paperExamInfo(paperExamId); + return SingleResponse.success(examInfo); + } +}