Pārlūkot izejas kodu

断点恢复接口修改

wangliang 4 gadi atpakaļ
vecāks
revīzija
aadeea3f21

+ 0 - 36
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamPrepareBean.java

@@ -53,42 +53,6 @@ public class ExamPrepareBean extends TEExamActivityDto implements Serializable {
         this.monitorAppId = monitorAppId;
     }
 
-    public void setTeExamActivityDto(TEExamActivityDto teExamActivityDto){
-        setId(teExamActivityDto.getId());
-        setPrepareTime(teExamActivityDto.getPrepareTime());
-        setMinStartTime(teExamActivityDto.getMinStartTime());
-        setMaxStartTime(teExamActivityDto.getMaxStartTime());
-        setMaxFinishTime(teExamActivityDto.getMaxFinishTime());
-        setMonitorVideoSourceStr(teExamActivityDto.getMonitorVideoSourceStr());
-        setMonitorVideoSource(teExamActivityDto.getMonitorVideoSource());
-        setOpeningSeconds(teExamActivityDto.getOpeningSeconds());
-        setActivityOpeningSeconds(teExamActivityDto.getActivityOpeningSeconds());
-        setPrepareSeconds(teExamActivityDto.getPrepareSeconds());
-        setActivityPrepareSeconds(teExamActivityDto.getActivityPrepareSeconds());
-        setMinDurationSeconds(teExamActivityDto.getMinDurationSeconds());
-        setMaxDurationSeconds(teExamActivityDto.getMaxDurationSeconds());
-        setActivityMaxDurationSeconds(teExamActivityDto.getActivityMaxDurationSeconds());
-        setExamCount(teExamActivityDto.getExamCount());
-        setForceFinish(teExamActivityDto.getForceFinish());
-        setEntryAuthenticationPolicy(teExamActivityDto.getEntryAuthenticationPolicy());
-        setInProcessFaceVerify(teExamActivityDto.getInProcessFaceVerify());
-        setInProcessFaceStrangerIgnore(teExamActivityDto.getInProcessFaceStrangerIgnore());
-        setInProcessLivenessVerify(teExamActivityDto.getInProcessLivenessVerify());
-        setInProcessLivenessFixedRangeStr(teExamActivityDto.getInProcessLivenessFixedRangeStr());
-        setInProcessLivenessFixedRange(teExamActivityDto.getInProcessLivenessFixedRange());
-        setInProcessLivenessJudgePolicy(teExamActivityDto.getInProcessLivenessJudgePolicy());
-        setCameraPhotoUpload(teExamActivityDto.getCameraPhotoUpload());
-        setStartTime(teExamActivityDto.getStartTime());
-        setFinishTime(teExamActivityDto.getFinishTime());
-        setLeftExamCount(teExamActivityDto.getLeftExamCount());
-        setMobilePhotoUpload(teExamActivityDto.getMobilePhotoUpload());
-        setMonitorAudioEnable(teExamActivityDto.getMonitorAudioEnable());
-        setExamId(teExamActivityDto.getExamId());
-        setHardwareTest(teExamActivityDto.getHardwareTest());
-        setPreNotice(teExamActivityDto.getPreNotice());
-        setPreNoticeStaySeconds(teExamActivityDto.getPreNoticeStaySeconds());
-    }
-
     public String getMonitorAppId() {
         return monitorAppId;
     }

+ 22 - 21
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamResumeBean.java

@@ -1,24 +1,26 @@
 package com.qmth.themis.business.bean.exam;
 
+import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
 
 import com.qmth.themis.business.cache.bean.ExamStudentAnswerCacheBean;
 
+import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 @ApiModel("断点恢复返回信息")
-public class ExamResumeBean {
+public class ExamResumeBean extends TEExamActivityDto implements Serializable {
 
 	@ApiModelProperty("考试时长(秒)")
 	private Integer durationSeconds;
 
-	@ApiModelProperty("试卷数据包下载地址")
-	private String paperUrl;
+//	@ApiModelProperty("试卷数据包下载地址")
+//	private String paperUrl;
 
-	@ApiModelProperty("试卷结构下载地址")
-	private String structUrl;
+//	@ApiModelProperty("试卷结构下载地址")
+//	private String structUrl;
 
 	@ApiModelProperty("是否包含音频")
 	private Boolean hasAudio;
@@ -78,21 +80,21 @@ public class ExamResumeBean {
 		this.durationSeconds = durationSeconds;
 	}
 
-	public String getPaperUrl() {
-		return paperUrl;
-	}
-
-	public void setPaperUrl(String paperUrl) {
-		this.paperUrl = paperUrl;
-	}
-
-	public String getStructUrl() {
-		return structUrl;
-	}
-
-	public void setStructUrl(String structUrl) {
-		this.structUrl = structUrl;
-	}
+//	public String getPaperUrl() {
+//		return paperUrl;
+//	}
+//
+//	public void setPaperUrl(String paperUrl) {
+//		this.paperUrl = paperUrl;
+//	}
+//
+//	public String getStructUrl() {
+//		return structUrl;
+//	}
+//
+//	public void setStructUrl(String structUrl) {
+//		this.structUrl = structUrl;
+//	}
 
 	public Boolean getHasAudio() {
 		return hasAudio;
@@ -141,5 +143,4 @@ public class ExamResumeBean {
 	public void setAudioPlayCount(Integer audioPlayCount) {
 		this.audioPlayCount = audioPlayCount;
 	}
-
 }

+ 36 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityDto.java

@@ -233,6 +233,42 @@ public class TEExamActivityDto implements Serializable {
         this.preNoticeStaySeconds = ec.getPreNoticeStaySeconds();
     }
 
+    public void setTeExamActivityDto(TEExamActivityDto teExamActivityDto){
+        setId(teExamActivityDto.getId());
+        setPrepareTime(teExamActivityDto.getPrepareTime());
+        setMinStartTime(teExamActivityDto.getMinStartTime());
+        setMaxStartTime(teExamActivityDto.getMaxStartTime());
+        setMaxFinishTime(teExamActivityDto.getMaxFinishTime());
+        setMonitorVideoSourceStr(teExamActivityDto.getMonitorVideoSourceStr());
+        setMonitorVideoSource(teExamActivityDto.getMonitorVideoSource());
+        setOpeningSeconds(teExamActivityDto.getOpeningSeconds());
+        setActivityOpeningSeconds(teExamActivityDto.getActivityOpeningSeconds());
+        setPrepareSeconds(teExamActivityDto.getPrepareSeconds());
+        setActivityPrepareSeconds(teExamActivityDto.getActivityPrepareSeconds());
+        setMinDurationSeconds(teExamActivityDto.getMinDurationSeconds());
+        setMaxDurationSeconds(teExamActivityDto.getMaxDurationSeconds());
+        setActivityMaxDurationSeconds(teExamActivityDto.getActivityMaxDurationSeconds());
+        setExamCount(teExamActivityDto.getExamCount());
+        setForceFinish(teExamActivityDto.getForceFinish());
+        setEntryAuthenticationPolicy(teExamActivityDto.getEntryAuthenticationPolicy());
+        setInProcessFaceVerify(teExamActivityDto.getInProcessFaceVerify());
+        setInProcessFaceStrangerIgnore(teExamActivityDto.getInProcessFaceStrangerIgnore());
+        setInProcessLivenessVerify(teExamActivityDto.getInProcessLivenessVerify());
+        setInProcessLivenessFixedRangeStr(teExamActivityDto.getInProcessLivenessFixedRangeStr());
+        setInProcessLivenessFixedRange(teExamActivityDto.getInProcessLivenessFixedRange());
+        setInProcessLivenessJudgePolicy(teExamActivityDto.getInProcessLivenessJudgePolicy());
+        setCameraPhotoUpload(teExamActivityDto.getCameraPhotoUpload());
+        setStartTime(teExamActivityDto.getStartTime());
+        setFinishTime(teExamActivityDto.getFinishTime());
+        setLeftExamCount(teExamActivityDto.getLeftExamCount());
+        setMobilePhotoUpload(teExamActivityDto.getMobilePhotoUpload());
+        setMonitorAudioEnable(teExamActivityDto.getMonitorAudioEnable());
+        setExamId(teExamActivityDto.getExamId());
+        setHardwareTest(teExamActivityDto.getHardwareTest());
+        setPreNotice(teExamActivityDto.getPreNotice());
+        setPreNoticeStaySeconds(teExamActivityDto.getPreNoticeStaySeconds());
+    }
+
     public String getPreNotice() {
         return preNotice;
     }

+ 11 - 3
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -5,7 +5,6 @@ import com.aliyun.oss.common.utils.BinaryUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.google.gson.Gson;
 import com.qmth.themis.business.bean.admin.OpenExamBean;
 import com.qmth.themis.business.bean.exam.*;
 import com.qmth.themis.business.cache.*;
@@ -818,8 +817,8 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         }
         ret = new ExamResumeBean();
         ret.setDurationSeconds(ExamRecordCacheUtil.getDurationSeconds(recordId));
-        ret.setPaperUrl(ossUtil.getPrivateUrl(ep.getPaperPath()));
-        ret.setStructUrl(ossUtil.getPrivateUrl(ep.getStructPath()));
+//        ret.setPaperUrl(ossUtil.getPrivateUrl(ep.getPaperPath()));
+//        ret.setStructUrl(ossUtil.getPrivateUrl(ep.getStructPath()));
         ret.setHasAudio((ep.getHasAudio() != null && ep.getHasAudio().intValue() == 1 ? true : false));
         ret.setAudioPlayCount(ep.getAudioPlayCount());
         ret.setMonitorAppId(tencentYunUtil.getTencentYunDomain().getAppId());
@@ -827,6 +826,15 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         ret.setMonitorUserId("s_" + tbSession.getId());
         ret.setMonitorUserSig(tencentYunUtil.getSign(ret.getMonitorUserId(), SystemConstant.TENCENT_EXPIRE_TIME));
 
+        ExamActivityCacheBean ac = teExamActivityService.getExamActivityCacheBean(es.getExamActivityId());
+        ExamCourseCacheBean examCourseCacheBean = teExamCourseService.getExamCourseCacheBean(es.getExamId(), es.getCourseCode());
+        TEExamActivityDto teExamActivityDto = new TEExamActivityDto(ec, ac, es,
+                examStudentId, examCourseCacheBean, ExamRecordCacheUtil.getStartTime(recordId),
+                ExamRecordCacheUtil.getEndTime(recordId), ExamRecordCacheUtil.getOpeningSeconds(recordId),
+                ExamRecordCacheUtil.getMinDurationSeconds(recordId),
+                ExamRecordCacheUtil.getMaxDurationSeconds(recordId), ExamRecordCacheUtil.getForceFinish(recordId));
+        ret.setTeExamActivityDto(teExamActivityDto);
+
         ExamStudentPaperStructCacheBean struct = (ExamStudentPaperStructCacheBean) redisUtil
                 .get(RedisKeyHelper.studentPaperStructKey(recordId));
         if (struct != null) {