package jnpf.tmsController; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jnpf.base.ActionResult; import jnpf.base.vo.PageListVO; import jnpf.base.vo.PaginationVO; import jnpf.tmsEntity.exam.TmsOnlineExamDetailVO; import jnpf.tmsEntity.exam.TmsOnlineExamListVO; import jnpf.tmsEntity.exam.TmsOnlineExamPaperVO; import jnpf.tmsEntity.exam.TmsOnlineExamQuery; import jnpf.tmsEntity.exam.TmsOnlineExamStartForm; import jnpf.tmsEntity.exam.TmsOnlineExamSubmitForm; import jnpf.tmsEntity.exam.TmsOnlineExamSubmitResultVO; import jnpf.tmsService.TmsOnlineExamService; import jnpf.util.JsonUtil; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; 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.RestController; import java.util.List; /** * 在线考试。网关 /api/tms/online-exam/** (StripPrefix=2)→ /online-exam/** */ @Tag(name = "TMS在线考试", description = "OnlineExam") @RestController @RequestMapping("/online-exam") @RequiredArgsConstructor public class TmsOnlineExamController { private final TmsOnlineExamService onlineExamService; @Operation(summary = "我的试卷") @GetMapping("/my-papers") public ActionResult> myPapers(TmsOnlineExamQuery query) { List list = onlineExamService.getMyPapers(query); PageListVO vo = new PageListVO<>(); vo.setList(list); vo.setPagination(JsonUtil.getJsonToBean(query, PaginationVO.class)); return ActionResult.success(vo); } @Operation(summary = "试卷考试详情") @GetMapping("/my-papers/{id}") public ActionResult detail(@PathVariable("id") String id) { return ActionResult.success(onlineExamService.getDetail(id)); } @Operation(summary = "按答卷ID查看考试回顾") @GetMapping("/exams/{examId}") public ActionResult examReview(@PathVariable("examId") String examId) { return ActionResult.success(onlineExamService.getExamReview(examId)); } @Operation(summary = "开始或继续考试") @PostMapping("/start") public ActionResult start(@RequestBody TmsOnlineExamStartForm form) { String paperId = form == null ? null : form.getMyPaperId(); return ActionResult.success(onlineExamService.start(paperId)); } @Operation(summary = "暂存作答") @PostMapping("/{id}/save") public ActionResult save(@PathVariable("id") String id, @RequestBody TmsOnlineExamSubmitForm form) { onlineExamService.saveAnswers(id, form); return ActionResult.success("暂存成功"); } @Operation(summary = "交卷") @PostMapping("/{id}/submit") public ActionResult submit(@PathVariable("id") String id, @RequestBody TmsOnlineExamSubmitForm form) { return ActionResult.success(onlineExamService.submit(id, form)); } }