FrontExamController.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.ruoyi.web.controller.front;
  2. import com.ruoyi.common.core.domain.AjaxResult;
  3. import com.ruoyi.dz.service.IDzControlService;
  4. import com.ruoyi.enums.PaperType;
  5. import com.ruoyi.learn.domain.AnswerSheet;
  6. import com.ruoyi.system.service.ISysUserService;
  7. import com.ruoyi.web.service.ExamService;
  8. import com.ruoyi.web.service.PaperService;
  9. import io.swagger.annotations.Api;
  10. import io.swagger.annotations.ApiOperation;
  11. import io.swagger.annotations.ApiParam;
  12. import org.springframework.web.bind.annotation.*;
  13. @RestController
  14. @RequestMapping("/front/exam")
  15. @Api(tags = "前台-学习-考试练习")
  16. public class FrontExamController {
  17. private final IDzControlService controlService;
  18. private final ISysUserService sysUserService;
  19. private final ExamService examService;
  20. private final PaperService paperService;
  21. public FrontExamController(IDzControlService controlService, ISysUserService sysUserService, ExamService examService, PaperService paperService) {
  22. this.controlService = controlService;
  23. this.sysUserService = sysUserService;
  24. this.examService = examService;
  25. this.paperService = paperService;
  26. }
  27. // 试卷: 真题卷,批次测试卷,自组卷, 生成考试记录
  28. // 定向模拟卷: 根据用户选择生成记录
  29. // 组卷: 知识点 错题 必刷题 实时组卷后才生成记录
  30. @ApiOperation("01 开卷")
  31. @PostMapping(value = "openExaminee")
  32. public AjaxResult openExaminee(@ApiParam("定向") @RequestParam(defaultValue = "false") boolean directed,
  33. @ApiParam("考卷类型PaperType") @RequestParam PaperType paperType,
  34. @ApiParam("考卷类型关联ID") @RequestParam Long relateId) {
  35. return AjaxResult.success(examService.openExaminee(directed, paperType, relateId));
  36. }
  37. @ApiOperation("04 开始考试")
  38. @GetMapping(value = "beginExaminee")
  39. public AjaxResult beginExaminee(@ApiParam("答卷ID") Long examineeId) {
  40. // 检查状态,以决定是否返回答案
  41. return AjaxResult.success(examService.loadExaminee(examineeId, true));
  42. }
  43. @ApiOperation("04 取答卷")
  44. @GetMapping(value = "loadExaminee")
  45. public AjaxResult loadExaminee(@ApiParam("答卷ID") Long examineeId) {
  46. // 检查状态,以决定是否返回答案
  47. return AjaxResult.success(examService.loadExaminee(examineeId, false));
  48. }
  49. @ApiOperation("02 交卷")
  50. @PostMapping(value = "commitExamineePaper")
  51. public AjaxResult commitExamineePaper(@RequestBody AnswerSheet answerSheet) {
  52. if(null == answerSheet.getIsDone()) {
  53. answerSheet.setIsDone(false);
  54. }
  55. examService.commitAnswerSheet(answerSheet);
  56. return AjaxResult.success();
  57. }
  58. /*@ApiOperation("02 答题")
  59. @PostMapping(value = "commitExamineeQuestion")
  60. public AjaxResult commitExamineeQuestion(@RequestBody PaperDto paperDto) {
  61. return adminExaminationService.saveQuestion(paperDto);
  62. }
  63. @ApiOperation("04 阅卷打分")
  64. @PostMapping(value = "scoreExamineeQuestions")
  65. public AjaxResult scoreExamineeQuestions(@RequestBody PaperDto paperDto) {
  66. if (MxjbContants.ExamineeTypeIeValue.equals(paperDto.getExamineeType())) {
  67. return mxjbPaperExamService.scoreExamineeQuestion(paperDto, true);
  68. }
  69. return AjaxResult.error("不支持: " + paperDto.getExamineeType());
  70. }
  71. @ApiOperation("05 阅卷结束")
  72. @PostMapping(value = "scoreFinish")
  73. public AjaxResult scoreFinish(
  74. @ApiParam("考生答卷Id") @RequestParam Long examineeId,
  75. @ApiParam("考生类型 1是测评evaluation(default),2是竞赛competitor 3 ai 5 homework 6 ie") @RequestParam(required = false, defaultValue = "1") Integer examineeType) {
  76. if (MxjbContants.ExamineeTypeIeValue.equals(examineeType)) {
  77. return mxjbPaperExamService.scoreFinish(examineeId);
  78. }
  79. return AjaxResult.error("不支持: " + examineeType);
  80. }
  81. @ApiOperation("06 查看题")
  82. @GetMapping(value = "openQuestion")
  83. public QuestionDto openQuestion(@ApiParam("考生答卷Id") @RequestParam Long examineeId, @ApiParam("考生试题ID") @RequestParam Long questionId,
  84. @ApiParam("考生类型 1是测评evaluation(default),2是竞赛competitor 3 ai 5 homework 6 ie") @RequestParam(required = false, defaultValue = "1") Integer examineeType) {
  85. LoginUser loginUser = SecurityUtils.getLoginUser();
  86. if (MxjbContants.ExamineeTypeIeValue.equals(examineeType)) {
  87. return mxjbPaperExamService.openQuestion(examineeId, loginUser.getUser().getUserId(), questionId);
  88. }
  89. return new QuestionDto();
  90. }
  91. */
  92. }