|
@@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.qmth.themis.business.annotation.ApiJsonObject;
|
|
|
import com.qmth.themis.business.annotation.ApiJsonProperty;
|
|
|
+import com.qmth.themis.business.bean.exam.ExamActivityUnFinishBean;
|
|
|
+import com.qmth.themis.business.bean.exam.ExamUnFinishBean;
|
|
|
import com.qmth.themis.business.cache.ExamRecordCacheUtil;
|
|
|
import com.qmth.themis.business.cache.RedisKeyHelper;
|
|
|
import com.qmth.themis.business.cache.bean.ExamCacheBean;
|
|
|
+import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
|
|
|
import com.qmth.themis.business.constant.SystemConstant;
|
|
|
import com.qmth.themis.business.dto.AuthDto;
|
|
|
import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
|
|
@@ -16,10 +19,7 @@ import com.qmth.themis.business.entity.TBSession;
|
|
|
import com.qmth.themis.business.entity.TEConfig;
|
|
|
import com.qmth.themis.business.entity.TEStudent;
|
|
|
import com.qmth.themis.business.enums.*;
|
|
|
-import com.qmth.themis.business.service.CacheService;
|
|
|
-import com.qmth.themis.business.service.TEConfigService;
|
|
|
-import com.qmth.themis.business.service.TEExamService;
|
|
|
-import com.qmth.themis.business.service.TEStudentService;
|
|
|
+import com.qmth.themis.business.service.*;
|
|
|
import com.qmth.themis.business.util.JacksonUtil;
|
|
|
import com.qmth.themis.business.util.RedisUtil;
|
|
|
import com.qmth.themis.business.util.ServletUtil;
|
|
@@ -79,6 +79,9 @@ public class TEStudentController {
|
|
|
@Resource
|
|
|
TEExamService teExamService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ TEExamStudentService teExamStudentService;
|
|
|
+
|
|
|
@ApiOperation(value = "学生登录接口")
|
|
|
@RequestMapping(value = "/login", method = RequestMethod.POST)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "学生信息", response = TEExamResultDto.class)})
|
|
@@ -188,13 +191,15 @@ public class TEStudentController {
|
|
|
//获取考试记录缓存
|
|
|
Map<String, Object> objectMap = redisUtil.getHashEntries(RedisKeyHelper.examRecordCacheKey(recordId));
|
|
|
Long examIdMap = Long.parseLong(String.valueOf(objectMap.get("examId")));
|
|
|
+ Long examStudentId = Long.parseLong(String.valueOf(objectMap.get("examStudentId")));
|
|
|
Integer durationSeconds = null;
|
|
|
if (Objects.isNull(objectMap.get("durationSeconds"))) {
|
|
|
durationSeconds = 0;
|
|
|
} else {
|
|
|
durationSeconds = Integer.parseInt(String.valueOf(objectMap.get("durationSeconds")));
|
|
|
}
|
|
|
- ExamCacheBean ec = teExamService.getExamCacheBean(examIdMap);
|
|
|
+ ExamCacheBean ec = teExamService.getExamCacheBean(examIdMap);//考试缓存
|
|
|
+ ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudnetCacheBean(examStudentId);
|
|
|
|
|
|
//获取最近同步时间
|
|
|
Date clientLastSyncTime = ExamRecordCacheUtil.getClientLastSyncTime(recordId);
|
|
@@ -227,10 +232,14 @@ public class TEStudentController {
|
|
|
//发送mq,增加断点次数记录
|
|
|
MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examBreakHistory.name(), JacksonUtil.parseJson(objectMap), MqEnum.EXAM_BREAK, String.valueOf(recordId), "增加断点记录");
|
|
|
mqDtoService.assembleSendOneWayMsg(mqDto);
|
|
|
- Map finalMap = new HashMap();
|
|
|
- finalMap.put("waiting", ec);
|
|
|
- finalMap.put("activity", objectMap);
|
|
|
- map.put("unFinished", finalMap);
|
|
|
+ Gson gson = new Gson();
|
|
|
+ ExamActivityUnFinishBean examActivityUnFinishBean = gson.fromJson(gson.toJson(ec), ExamActivityUnFinishBean.class);
|
|
|
+ examActivityUnFinishBean.setRecordId(recordId);
|
|
|
+ examActivityUnFinishBean.setCourseCode(examStudentCacheBean.getCourseCode());
|
|
|
+ examActivityUnFinishBean.setCourseName(examStudentCacheBean.getCourseName());
|
|
|
+ examActivityUnFinishBean.setExamStudentId(examStudentId);
|
|
|
+ ExamUnFinishBean examUnFinishBean = new ExamUnFinishBean(ec.getId(), ec.getName(), ec.getPreNotice(), ec.getPreNoticeStaySeconds(), ec.getPostNotice(), examActivityUnFinishBean);
|
|
|
+ map.put("unFinished", examUnFinishBean);
|
|
|
}
|
|
|
}
|
|
|
}
|