PracticeExamRestController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. /*
  2. * *************************************************
  3. * Copyright (c) 2018 QMTH. All Rights Reserved.
  4. * Created by Deason on 2018-07-16 17:53:55.
  5. * *************************************************
  6. */
  7. package cn.com.qmth.examcloud.app.controller;
  8. import cn.com.qmth.examcloud.app.model.Result;
  9. import cn.com.qmth.examcloud.app.service.ExamAdminService;
  10. import cn.com.qmth.examcloud.app.service.NetExamService;
  11. import cn.com.qmth.examcloud.app.service.QuestionPoolService;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.web.bind.annotation.*;
  16. /**
  17. * 在线练习相关接口
  18. *
  19. * @version v1.0
  20. * @author: fengdesheng
  21. * @since: 2018/7/16
  22. */
  23. @RestController
  24. @RequestMapping("/api/v2")
  25. @Api(tags = "在线练习相关接口")
  26. public class PracticeExamRestController {
  27. @Autowired
  28. private ExamAdminService examAdminService;
  29. @Autowired
  30. private NetExamService netExamService;
  31. @Autowired
  32. private QuestionPoolService questionPoolService;
  33. @ApiOperation(value = "获取某考生的“考试批次”列表接口")
  34. @RequestMapping(value = "/exam/practice/list", method = {RequestMethod.GET, RequestMethod.POST})
  35. public Result getPracticeExamList(@RequestHeader String key, @RequestHeader String token, @RequestParam String studentId) throws Exception {
  36. return examAdminService.getPracticeExamList(key, token, studentId);
  37. }
  38. @ApiOperation(value = "获取某考试批次下的课程列表接口")
  39. @RequestMapping(value = "/exam/practice/course/list", method = {RequestMethod.GET, RequestMethod.POST})
  40. public Result getPracticeExamCourseList(@RequestHeader String key, @RequestHeader String token, @RequestParam String examId) throws Exception {
  41. return netExamService.getPracticeExamCourseList(key, token, examId);
  42. }
  43. @ApiOperation(value = "获取当前练习的剩余作答时间接口")
  44. @RequestMapping(value = "/exam/record/heartbeat", method = {RequestMethod.GET, RequestMethod.POST})
  45. public Result getExamRecordHeartbeat(@RequestHeader String key, @RequestHeader String token) throws Exception {
  46. return netExamService.getExamRecordHeartbeat(key, token);
  47. }
  48. @ApiOperation(value = "考生“开始练习”接口")
  49. @RequestMapping(value = "/exam/record/start", method = {RequestMethod.GET, RequestMethod.POST})
  50. public Result startPracticeExamRecord(@RequestHeader String key, @RequestHeader String token, @RequestParam String examStudentId) throws Exception {
  51. return netExamService.startPracticeExamRecord(key, token, examStudentId);
  52. }
  53. @ApiOperation(value = "获取当前练习的试卷大题结构信息接口")
  54. @RequestMapping(value = "/exam/record/paper/struct/list", method = {RequestMethod.GET, RequestMethod.POST})
  55. public Result getExamRecordPaperStructList(@RequestHeader String key, @RequestHeader String token, @RequestParam String examRecordId) throws Exception {
  56. return netExamService.getExamRecordPaperStructList(key, token, examRecordId);
  57. }
  58. @ApiOperation(value = "获取当前练习的考试基本信息接口")
  59. @RequestMapping(value = "/exam/info/{examId}", method = {RequestMethod.GET, RequestMethod.POST})
  60. public Result getExamInfo(@RequestHeader String key, @RequestHeader String token, @PathVariable Long examId) throws Exception {
  61. return examAdminService.getExamInfo(key, token, examId);
  62. }
  63. @ApiOperation(value = "获取当前练习的试卷试题列表接口")
  64. @RequestMapping(value = "/exam/record/paper/question/list", method = {RequestMethod.GET, RequestMethod.POST})
  65. public Result getExamRecordPaperQuestionList(@RequestHeader String key, @RequestHeader String token) throws Exception {
  66. return netExamService.getExamRecordPaperQuestionList(key, token);
  67. }
  68. @ApiOperation(value = "获取考生作答的某个试题的详细信息接口")
  69. @RequestMapping(value = "/exam/record/paper/question/detail/{questionId}/{examRecordId}", method = {RequestMethod.GET, RequestMethod.POST})
  70. public Result questionDetail(@RequestHeader String key, @RequestHeader String token, @PathVariable String questionId, @PathVariable String examRecordId) throws Exception {
  71. return netExamService.getExamRecordPaperQuestionDetail(key, token, questionId, examRecordId);
  72. }
  73. @ApiOperation(value = "保存或更新考生作答的某个试题答案接口")
  74. @RequestMapping(value = "/exam/record/paper/question/answer/update", method = {RequestMethod.GET, RequestMethod.POST})
  75. public Result updateExamRecordPaperQuestionAnswer(@RequestHeader String key, @RequestHeader String token, @RequestParam Integer order, @RequestParam String studentAnswer) throws Exception {
  76. return netExamService.updateExamRecordPaperQuestionAnswer(key, token, order, studentAnswer);
  77. }
  78. @ApiOperation(value = "当前练习的交卷接口")
  79. @RequestMapping(value = "/exam/record/submit", method = {RequestMethod.GET, RequestMethod.POST})
  80. public Result submitPracticeExamRecord(@RequestHeader String key, @RequestHeader String token) throws Exception {
  81. return netExamService.submitPracticeExamRecord(key, token);
  82. }
  83. @ApiOperation(value = "检查考生当前是否有正在进行的练习记录接口")
  84. @RequestMapping(value = "/exam/record/online/check", method = {RequestMethod.GET, RequestMethod.POST})
  85. public Result checkOnlineExamRecord(@RequestHeader String key, @RequestHeader String token) throws Exception {
  86. return netExamService.checkOnlineExamRecord(key, token);
  87. }
  88. @ApiOperation(value = "获取当前考生的当前课程练习统计信息接口", hidden = true)
  89. @RequestMapping(value = "/exam/record/practice/course/total", method = {RequestMethod.GET, RequestMethod.POST})
  90. public Result getExamRecordPracticeTotalInfo(@RequestHeader String key, @RequestHeader String token, @RequestParam String examStudentId) throws Exception {
  91. return netExamService.getExamRecordPracticeTotalInfo(key, token, examStudentId);
  92. }
  93. @ApiOperation(value = "获取当前考生的当前课程的历史练习记录接口")
  94. @RequestMapping(value = "/exam/record/practice/course/history/list", method = {RequestMethod.GET, RequestMethod.POST})
  95. public Result getExamRecordPracticeHistoryList(@RequestHeader String key, @RequestHeader String token, @RequestParam String examStudentId) throws Exception {
  96. return netExamService.getExamRecordPracticeHistoryList(key, token, examStudentId);
  97. }
  98. @ApiOperation(value = "获取成绩报告的答题情况统计接口")
  99. @RequestMapping(value = "/exam/record/total", method = {RequestMethod.GET, RequestMethod.POST})
  100. public Result getExamRecordTotalInfo(@RequestHeader String key, @RequestHeader String token, @RequestParam String examRecordId) throws Exception {
  101. return netExamService.getExamRecordTotalInfo(key, token, examRecordId);
  102. }
  103. @ApiOperation(value = "获取作答的题列表接口")
  104. @RequestMapping(value = "/exam/record/paper/question/detail/list", method = {RequestMethod.GET, RequestMethod.POST})
  105. public Result getExamRecordQuestionDetailList(@RequestHeader String key, @RequestHeader String token, @RequestParam String examRecordId) throws Exception {
  106. return netExamService.getExamRecordQuestionDetailList(key, token, examRecordId);
  107. }
  108. @ApiOperation(value = "获取当前试题的音频已播放次数接口")
  109. @RequestMapping(value = "/exam/record/paper/question/get/playtimes", method = {RequestMethod.GET, RequestMethod.POST})
  110. public Result getExamRecordQuestionAudioPlayTimes(@RequestHeader String key, @RequestHeader String token, @RequestParam String questionId) throws Exception {
  111. return netExamService.getExamRecordQuestionAudioPlayTimes(key, token, questionId);
  112. }
  113. @ApiOperation(value = "更新当前试题的音频已播放次数接口")
  114. @RequestMapping(value = "/exam/record/paper/question/update/playtimes", method = {RequestMethod.GET, RequestMethod.POST})
  115. public Result updateExamRecordQuestionAudioPlayTimes(@RequestHeader String key, @RequestHeader String token, @RequestParam String questionId, @RequestParam String mediaName) throws Exception {
  116. return netExamService.updateExamRecordQuestionAudioPlayTimes(key, token, questionId, mediaName);
  117. }
  118. @ApiOperation(value = "开考前查询“考试说明”")
  119. @RequestMapping(value = "/exam/practice/before/{examId}/{type}", method = {RequestMethod.GET, RequestMethod.POST})
  120. public Result getBeforeExamRemark(@RequestHeader String key, @RequestHeader String token, @PathVariable Long examId, @PathVariable String type) throws Exception {
  121. return examAdminService.getBeforeExamRemark(key, token, examId, type);
  122. }
  123. @ApiOperation(value = "查询练习记录配置信息")
  124. @RequestMapping(value = "/exam/practice/end/findExamRecordDataEntity/{examRecordDataId}", method = {RequestMethod.GET, RequestMethod.POST})
  125. public Result findExamRecordDataEntity(@RequestHeader String key, @RequestHeader String token, @PathVariable Long examRecordDataId) throws Exception {
  126. return netExamService.findExamRecordDataEntity(key, token, examRecordDataId);
  127. }
  128. @ApiOperation(value = "查询练习记录试题列表")
  129. @RequestMapping(value = "/exam/practice/end/getExamRecordQuestions/{examRecordDataId}", method = {RequestMethod.GET, RequestMethod.POST})
  130. public Result getExamRecordQuestions(@RequestHeader String key, @RequestHeader String token, @PathVariable Long examRecordDataId) throws Exception {
  131. return netExamService.getExamRecordQuestions(key, token, examRecordDataId);
  132. }
  133. @ApiOperation(value = "查询某个试题内容")
  134. @RequestMapping(value = "/exam/practice/end/question", method = {RequestMethod.GET, RequestMethod.POST})
  135. public Result getQuestion(@RequestHeader String key, @RequestHeader String token, @RequestParam String courseCode,
  136. @RequestParam Long examId, @RequestParam String groupCode, @RequestParam String questionId) throws Exception {
  137. return questionPoolService.getQuestion(key, token, courseCode, examId, groupCode, questionId);
  138. }
  139. @ApiOperation(value = "获取冻结时间")
  140. @RequestMapping(value = "/exam/practice/getFreezeTime", method = {RequestMethod.GET, RequestMethod.POST})
  141. public Result getFreezeTime(@RequestHeader String key, @RequestHeader String token, @RequestParam Long examId) throws Exception {
  142. return examAdminService.getFreezeTime(key, token, examId);
  143. }
  144. }