package com.ruoyi.web.controller.front; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.dz.service.IDzControlService; import com.ruoyi.enums.PaperType; import com.ruoyi.learn.domain.AnswerSheet; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.web.service.ExamService; import com.ruoyi.web.service.PaperService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/front/exam") @Api(tags = "前台-学习-考试练习") public class FrontExamController { private final IDzControlService controlService; private final ISysUserService sysUserService; private final ExamService examService; private final PaperService paperService; public FrontExamController(IDzControlService controlService, ISysUserService sysUserService, ExamService examService, PaperService paperService) { this.controlService = controlService; this.sysUserService = sysUserService; this.examService = examService; this.paperService = paperService; } // 试卷: 真题卷,批次测试卷,自组卷, 生成考试记录 // 定向模拟卷: 根据用户选择生成记录 // 组卷: 知识点 错题 必刷题 实时组卷后才生成记录 @ApiOperation("01 开卷") @PostMapping(value = "openExaminee") public AjaxResult openExaminee(@ApiParam("定向") @RequestParam(defaultValue = "false") boolean directed, @ApiParam("考卷类型PaperType") @RequestParam PaperType paperType, @ApiParam("考卷类型关联ID") @RequestParam Long relateId) { return AjaxResult.success(examService.openExaminee(directed, paperType, relateId)); } @ApiOperation("04 开始考试") @GetMapping(value = "beginExaminee") public AjaxResult beginExaminee(@ApiParam("答卷ID") Long examineeId) { // 检查状态,以决定是否返回答案 return AjaxResult.success(examService.loadExaminee(examineeId, true)); } @ApiOperation("04 取答卷") @GetMapping(value = "loadExaminee") public AjaxResult loadExaminee(@ApiParam("答卷ID") Long examineeId) { // 检查状态,以决定是否返回答案 return AjaxResult.success(examService.loadExaminee(examineeId, false)); } @ApiOperation("02 交卷") @PostMapping(value = "commitExamineePaper") public AjaxResult commitExamineePaper(@RequestBody AnswerSheet answerSheet) { if(null == answerSheet.getIsDone()) { answerSheet.setIsDone(false); } examService.commitAnswerSheet(answerSheet); return AjaxResult.success(); } /*@ApiOperation("02 答题") @PostMapping(value = "commitExamineeQuestion") public AjaxResult commitExamineeQuestion(@RequestBody PaperDto paperDto) { return adminExaminationService.saveQuestion(paperDto); } @ApiOperation("04 阅卷打分") @PostMapping(value = "scoreExamineeQuestions") public AjaxResult scoreExamineeQuestions(@RequestBody PaperDto paperDto) { if (MxjbContants.ExamineeTypeIeValue.equals(paperDto.getExamineeType())) { return mxjbPaperExamService.scoreExamineeQuestion(paperDto, true); } return AjaxResult.error("不支持: " + paperDto.getExamineeType()); } @ApiOperation("05 阅卷结束") @PostMapping(value = "scoreFinish") public AjaxResult scoreFinish( @ApiParam("考生答卷Id") @RequestParam Long examineeId, @ApiParam("考生类型 1是测评evaluation(default),2是竞赛competitor 3 ai 5 homework 6 ie") @RequestParam(required = false, defaultValue = "1") Integer examineeType) { if (MxjbContants.ExamineeTypeIeValue.equals(examineeType)) { return mxjbPaperExamService.scoreFinish(examineeId); } return AjaxResult.error("不支持: " + examineeType); } @ApiOperation("06 查看题") @GetMapping(value = "openQuestion") public QuestionDto openQuestion(@ApiParam("考生答卷Id") @RequestParam Long examineeId, @ApiParam("考生试题ID") @RequestParam Long questionId, @ApiParam("考生类型 1是测评evaluation(default),2是竞赛competitor 3 ai 5 homework 6 ie") @RequestParam(required = false, defaultValue = "1") Integer examineeType) { LoginUser loginUser = SecurityUtils.getLoginUser(); if (MxjbContants.ExamineeTypeIeValue.equals(examineeType)) { return mxjbPaperExamService.openQuestion(examineeId, loginUser.getUser().getUserId(), questionId); } return new QuestionDto(); } */ }