|
@@ -18,7 +18,10 @@ import com.qmth.themis.business.enums.ExamRecordStatusEnum;
|
|
import com.qmth.themis.business.enums.ExceptionEnum;
|
|
import com.qmth.themis.business.enums.ExceptionEnum;
|
|
import com.qmth.themis.business.enums.MqTagEnum;
|
|
import com.qmth.themis.business.enums.MqTagEnum;
|
|
import com.qmth.themis.business.enums.SystemOperationEnum;
|
|
import com.qmth.themis.business.enums.SystemOperationEnum;
|
|
-import com.qmth.themis.business.service.*;
|
|
|
|
|
|
+import com.qmth.themis.business.service.MqDtoService;
|
|
|
|
+import com.qmth.themis.business.service.TEExamService;
|
|
|
|
+import com.qmth.themis.business.service.TOeExamBreakHistoryService;
|
|
|
|
+import com.qmth.themis.business.service.TOeExamRecordService;
|
|
import com.qmth.themis.business.util.JacksonUtil;
|
|
import com.qmth.themis.business.util.JacksonUtil;
|
|
import com.qmth.themis.business.util.MqUtil;
|
|
import com.qmth.themis.business.util.MqUtil;
|
|
import com.qmth.themis.business.util.RedisUtil;
|
|
import com.qmth.themis.business.util.RedisUtil;
|
|
@@ -64,9 +67,9 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "验证考试口令接口")
|
|
@ApiOperation(value = "验证考试口令接口")
|
|
@RequestMapping(value = "/short_code", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/short_code", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "考试信息", response = TEExam.class) })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "考试信息", response = TEExam.class)})
|
|
public Result shortCode(@ApiJsonObject(name = "shortCode", value = {
|
|
public Result shortCode(@ApiJsonObject(name = "shortCode", value = {
|
|
- @ApiJsonProperty(key = "shortCode", description = "考试口令") }) @ApiParam(value = "考试口令", required = true) @RequestBody Map<String, Object> mapParameter) {
|
|
|
|
|
|
+ @ApiJsonProperty(key = "shortCode", description = "考试口令")}) @ApiParam(value = "考试口令", required = true) @RequestBody Map<String, Object> mapParameter) {
|
|
if (Objects.isNull(mapParameter.get("shortCode")) || Objects.equals(mapParameter.get("shortCode"), "")) {
|
|
if (Objects.isNull(mapParameter.get("shortCode")) || Objects.equals(mapParameter.get("shortCode"), "")) {
|
|
throw new BusinessException(ExceptionResultEnum.SHORT_CODE_IS_NULL);
|
|
throw new BusinessException(ExceptionResultEnum.SHORT_CODE_IS_NULL);
|
|
}
|
|
}
|
|
@@ -86,9 +89,9 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "获取待考列表接口")
|
|
@ApiOperation(value = "获取待考列表接口")
|
|
@RequestMapping(value = "/waiting", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/waiting", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "考试列表", response = TEExamDto.class) })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "考试列表", response = TEExamDto.class)})
|
|
public Result waiting(@ApiJsonObject(name = "examWaiting", value = {
|
|
public Result waiting(@ApiJsonObject(name = "examWaiting", value = {
|
|
- @ApiJsonProperty(key = "examId", type = "long", example = "1", description = "批次id") }) @ApiParam(value = "考试口令", required = true) @RequestBody Map<String, Object> mapParameter) {
|
|
|
|
|
|
+ @ApiJsonProperty(key = "examId", type = "long", example = "1", description = "批次id")}) @ApiParam(value = "考试口令", required = true) @RequestBody Map<String, Object> mapParameter) {
|
|
Long examId = Objects.nonNull(mapParameter.get(SystemConstant.EXAM_ID)) ?
|
|
Long examId = Objects.nonNull(mapParameter.get(SystemConstant.EXAM_ID)) ?
|
|
Long.parseLong(String.valueOf(mapParameter.get(SystemConstant.EXAM_ID))) :
|
|
Long.parseLong(String.valueOf(mapParameter.get(SystemConstant.EXAM_ID))) :
|
|
null;
|
|
null;
|
|
@@ -99,7 +102,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "开始候考")
|
|
@ApiOperation(value = "开始候考")
|
|
@RequestMapping(value = "/prepare", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/prepare", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "候考信息", response = ExamPrepareBean.class) })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "候考信息", response = ExamPrepareBean.class)})
|
|
public Result prepare(@RequestBody PrepareParamBean param) {
|
|
public Result prepare(@RequestBody PrepareParamBean param) {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
@@ -118,9 +121,9 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "候考/答题状态退出")
|
|
@ApiOperation(value = "候考/答题状态退出")
|
|
@RequestMapping(value = "/exit", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/exit", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class) })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
|
|
public Result exit(@ApiJsonObject(name = "saveInvigilateUser", value = {
|
|
public Result exit(@ApiJsonObject(name = "saveInvigilateUser", value = {
|
|
- @ApiJsonProperty(key = "recordId", type = "long", example = "1", description = "考试记录id", required = true) }) @ApiParam(value = "考试记录id", required = true) @RequestBody Map<String, Object> mapParameter)
|
|
|
|
|
|
+ @ApiJsonProperty(key = "recordId", type = "long", example = "1", description = "考试记录id", required = true)}) @ApiParam(value = "考试记录id", required = true) @RequestBody Map<String, Object> mapParameter)
|
|
throws NoSuchAlgorithmException, IOException {
|
|
throws NoSuchAlgorithmException, IOException {
|
|
if (Objects.isNull(mapParameter.get(SystemConstant.RECORD_ID)) || Objects
|
|
if (Objects.isNull(mapParameter.get(SystemConstant.RECORD_ID)) || Objects
|
|
.equals(mapParameter.get(SystemConstant.RECORD_ID), "")) {
|
|
.equals(mapParameter.get(SystemConstant.RECORD_ID), "")) {
|
|
@@ -149,7 +152,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "开始考试")
|
|
@ApiOperation(value = "开始考试")
|
|
@RequestMapping(value = "/start", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/start", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result start(@RequestBody ExamStartParamBean param) {
|
|
public Result start(@RequestBody ExamStartParamBean param) {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
@@ -196,7 +199,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "上传个人试卷结构")
|
|
@ApiOperation(value = "上传个人试卷结构")
|
|
@RequestMapping(value = "/student_paper_struct/upload", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/student_paper_struct/upload", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result studentPaperStruct(@RequestBody StudentPaperStructParamBean param) {
|
|
public Result studentPaperStruct(@RequestBody StudentPaperStructParamBean param) {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
@@ -211,7 +214,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "提交作答结果")
|
|
@ApiOperation(value = "提交作答结果")
|
|
@RequestMapping(value = "/answer/submit", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/answer/submit", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result answerSubmit(@RequestBody AnswerSubmitParamBean param) throws IOException {
|
|
public Result answerSubmit(@RequestBody AnswerSubmitParamBean param) throws IOException {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
@@ -254,7 +257,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "更新音频剩余播放次数")
|
|
@ApiOperation(value = "更新音频剩余播放次数")
|
|
@RequestMapping(value = "/audio_left_play_count/submit", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/audio_left_play_count/submit", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result audioLeftPlayCountSubmit(@RequestBody AudioLeftPlayCountSubmitParamBean param) {
|
|
public Result audioLeftPlayCountSubmit(@RequestBody AudioLeftPlayCountSubmitParamBean param) {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
@@ -272,18 +275,18 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "文件上传")
|
|
@ApiOperation(value = "文件上传")
|
|
@RequestMapping(value = "/file/upload", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/file/upload", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result fileUpload(@ApiParam(value = "考试记录ID", required = true) @RequestParam Long recordId,
|
|
public Result fileUpload(@ApiParam(value = "考试记录ID", required = true) @RequestParam Long recordId,
|
|
- @ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
|
|
|
|
- @ApiParam(value = "后缀名", required = true) @RequestParam String suffix,
|
|
|
|
- @ApiParam(value = "md5", required = true) @RequestParam String md5) {
|
|
|
|
|
|
+ @ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
|
|
|
|
+ @ApiParam(value = "后缀名", required = true) @RequestParam String suffix,
|
|
|
|
+ @ApiParam(value = "md5", required = true) @RequestParam String md5) {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
return ResultUtil.ok(teExamService.fileUpload(teStudent.getId(), recordId, file, suffix, md5));
|
|
return ResultUtil.ok(teExamService.fileUpload(teStudent.getId(), recordId, file, suffix, md5));
|
|
}
|
|
}
|
|
|
|
|
|
@ApiOperation(value = "断点恢复")
|
|
@ApiOperation(value = "断点恢复")
|
|
@RequestMapping(value = "/resume", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/resume", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result resume(@RequestBody ResumeParamBean param) {
|
|
public Result resume(@RequestBody ResumeParamBean param) {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
@@ -303,7 +306,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "结束考试")
|
|
@ApiOperation(value = "结束考试")
|
|
@RequestMapping(value = "/finish", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/finish", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result finish(@RequestBody FinishParamBean param) {
|
|
public Result finish(@RequestBody FinishParamBean param) {
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
String lockKey = SystemConstant.REDIS_LOCK_STUDENT_PREFIX + teStudent.getId();
|
|
@@ -330,7 +333,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "查询交卷结果")
|
|
@ApiOperation(value = "查询交卷结果")
|
|
@RequestMapping(value = "/result", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/result", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result result(@RequestBody ResultParamBean param) {
|
|
public Result result(@RequestBody ResultParamBean param) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
|
|
throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
|
|
@@ -350,7 +353,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "获取试卷下载信息")
|
|
@ApiOperation(value = "获取试卷下载信息")
|
|
@RequestMapping(value = "/paper/download", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/paper/download", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result paperDownload(@RequestBody ResultParamBean param) throws IOException {
|
|
public Result paperDownload(@RequestBody ResultParamBean param) throws IOException {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
|
|
throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
|
|
@@ -366,7 +369,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "试卷下载成功通知")
|
|
@ApiOperation(value = "试卷下载成功通知")
|
|
@RequestMapping(value = "/paper/downloaded", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/paper/downloaded", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result paperDownloaded(@RequestBody ResultParamBean param) {
|
|
public Result paperDownloaded(@RequestBody ResultParamBean param) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
if (Objects.isNull(param.getRecordId()) || Objects.equals(param.getRecordId(), "")) {
|
|
throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
|
|
throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
|
|
@@ -389,7 +392,7 @@ public class TEExamController {
|
|
|
|
|
|
@ApiOperation(value = "查询考试状态")
|
|
@ApiOperation(value = "查询考试状态")
|
|
@RequestMapping(value = "/status", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/status", method = RequestMethod.POST)
|
|
- @ApiResponses({ @ApiResponse(code = 200, message = "试卷信息") })
|
|
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
public Result status(@RequestBody ResultParamBean param) {
|
|
public Result status(@RequestBody ResultParamBean param) {
|
|
if (Objects.isNull(param)) {
|
|
if (Objects.isNull(param)) {
|
|
throw new BusinessException(ExceptionResultEnum.PARAMS_ILLEGALITY);
|
|
throw new BusinessException(ExceptionResultEnum.PARAMS_ILLEGALITY);
|