Browse Source

候考列表接口修改

wangliang 4 years ago
parent
commit
020e309db1

+ 2 - 1
themis-business/src/main/java/com/qmth/themis/business/dao/TEExamActivityMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamActivityQueryDto;
 import com.qmth.themis.business.dto.response.TEExamActivityQueryDto;
+import com.qmth.themis.business.dto.response.TEExamActivityWaitDto;
 import com.qmth.themis.business.entity.TEExamActivity;
 import com.qmth.themis.business.entity.TEExamActivity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -83,7 +84,7 @@ public interface TEExamActivityMapper extends BaseMapper<TEExamActivity> {
      * @param mode
      * @param mode
      * @return
      * @return
      */
      */
-    public List<TEExamActivityDto> getWaitingExam(@Param("studentId") Long studentId, @Param("examActivityIds") Set<Long> examActivityIds, @Param("mode") String mode);
+    public List<TEExamActivityWaitDto> getWaitingExam(@Param("studentId") Long studentId, @Param("examActivityIds") Set<Long> examActivityIds, @Param("mode") String mode);
 
 
 	public List<TEExamActivity> findByExamIdAndOrgId(@Param("examId")Long examId,@Param("orgId") Long orgId);
 	public List<TEExamActivity> findByExamIdAndOrgId(@Param("examId")Long examId,@Param("orgId") Long orgId);
 }
 }

+ 2 - 1
themis-business/src/main/java/com/qmth/themis/business/dao/TEExamMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.themis.business.bean.admin.OpenExamBean;
 import com.qmth.themis.business.bean.admin.OpenExamBean;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamQueryDto;
 import com.qmth.themis.business.dto.response.TEExamQueryDto;
+import com.qmth.themis.business.dto.response.TEExamWaitDto;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.enums.InvigilateMonitorStatusEnum;
 import com.qmth.themis.business.enums.InvigilateMonitorStatusEnum;
 import com.qmth.themis.business.enums.ScoreStatusEnum;
 import com.qmth.themis.business.enums.ScoreStatusEnum;
@@ -48,7 +49,7 @@ public interface TEExamMapper extends BaseMapper<TEExam> {
      * @param orgId
      * @param orgId
      * @return
      * @return
      */
      */
-    public List<TEExamDto> getWaitingExam(@Param("studentId") Long studentId, @Param("examId") Long examId, @Param("orgId") Long orgId);
+    public List<TEExamWaitDto> getWaitingExam(@Param("studentId") Long studentId, @Param("examId") Long examId, @Param("orgId") Long orgId);
 
 
     /**
     /**
      * 监考端获取考试批次列表
      * 监考端获取考试批次列表

+ 515 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityWaitDto.java

@@ -0,0 +1,515 @@
+package com.qmth.themis.business.dto.response;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
+import com.qmth.themis.business.cache.bean.ExamCacheBean;
+import com.qmth.themis.business.cache.bean.ExamCourseCacheBean;
+import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
+import com.qmth.themis.business.enums.EntryAuthenticationPolicyEnum;
+import com.qmth.themis.business.enums.ExamModeEnum;
+import com.qmth.themis.business.enums.HardwareTestEnum;
+import com.qmth.themis.business.enums.MonitorVideoSourceEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @Description: 考试场次候考dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/8/3
+ */
+public class TEExamActivityWaitDto implements Serializable {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(name = "考试场次id")
+    private Long id;//考试id
+
+    @ApiModelProperty(name = "考试场次代码")
+    private String code;//考试场次代码
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(name = "考生id")
+    private Long examStudentId;//考生id
+
+    @ApiModelProperty(name = "科目代码")
+    private String courseCode;//科目代码
+
+    @ApiModelProperty(name = "科目名称")
+    private String courseName;//科目名称
+
+    @ApiModelProperty(name = "提前多长时间开始候考(时间戳)")
+    private Long prepareTime;
+
+    @ApiModelProperty(name = "最短考试时长")
+    private Long minStartTime;
+
+    @ApiModelProperty(name = "最大考试时长")
+    private Long maxStartTime;
+
+    @ApiModelProperty(name = "强制交卷时间")
+    private Long maxFinishTime;
+
+//    @ApiModelProperty(name = "监控源")
+//    private String monitorVideoSourceStr;
+//
+//    @ApiModelProperty(name = "监控源集合")
+//    private List<String> monitorVideoSource;
+
+//    @ApiModelProperty(name = "允许开考开放时长,相当于迟到时间")
+//    private Integer openingSeconds;//允许开考开放时长(分钟),相当于迟到时间
+//
+//    @ApiModelProperty(name = "允许开考开放时长,相当于迟到时间")
+//    private Integer activityOpeningSeconds;//允许开考开放时长(分钟),相当于迟到时间
+
+//    @ApiModelProperty(name = "提前多长时间开始候考")
+//    private Integer prepareSeconds;//提前多长时间开始候考(分钟)
+//
+//    @ApiModelProperty(name = "提前多长时间开始候考")
+//    private Integer activityPrepareSeconds;//提前多长时间开始候考(分钟)
+
+    @ApiModelProperty(name = "最短考试时长,相当于考试冻结时间")
+    private Integer minDurationSeconds;//最短考试时长,相当于考试冻结时间(分钟)
+
+    @ApiModelProperty(name = "最大考试时长")
+    private Integer maxDurationSeconds;//最大考试时长
+
+//    @ApiModelProperty(name = "最大考试时长")
+//    private Integer activityMaxDurationSeconds;//最大考试时长
+
+//    @ApiModelProperty(name = "允许考试次数")
+//    private Integer examCount;//允许考试次数
+
+//    @ApiModelProperty(name = "是否在结束时间集中强制收卷,0:不强制,1:强制")
+//    private Integer forceFinish;//是否在结束时间集中强制收卷,0:不强制,1:强制
+
+//    @ApiModelProperty(name = "开考身份验证策略,off:关闭,face_verify_optional:非强制人脸验证,face_verify_force:强制人脸验证,liveness_verify:活体验证")
+//    private String entryAuthenticationPolicy;//开考身份验证策略,off:关闭,face_verify_optional:非强制人脸验证,face_verify_force:强制人脸验证,liveness_verify:活体验证
+
+//    @ApiModelProperty(name = "考试过程中人脸检测是否开启,0:不开启,1:开启")
+//    private Integer inProcessFaceVerify;//考试过程中人脸检测是否开启,0:不开启,1:开启
+//
+//    @ApiModelProperty(name = "考试过程中人脸检测是否忽略陌生人 ,0:不忽略,1:忽略")
+//    private Integer inProcessFaceStrangerIgnore;//考试过程中人脸检测是否忽略陌生人 ,0:不忽略,1:忽略
+//
+//    @ApiModelProperty(name = "考试过程中是否启用活体检测 ,0:不启用,1:启用")
+//    private Integer inProcessLivenessVerify;//考试过程中是否启用活体检测 ,0:不启用,1:启用
+//
+//    @ApiModelProperty(value = "考试过程中是否启用真实性检测,0:不启用,1:启用")
+//    private Integer inProcessRealnessVerify;
+//
+//    @ApiModelProperty(name = "考试过程中活体检测间隔时间")
+//    private String inProcessLivenessFixedRangeStr;
+//
+//    @ApiModelProperty(name = "考试过程中活体检测间隔时间集合")
+//    private List<Integer> inProcessLivenessFixedRange;//考试过程中活体检测间隔时间
+//
+//    @ApiModelProperty(name = "考试过程中活体检测结果判定规则,any:任意一次通过,all:全部都要通过,more:通过次数大于失败次数")
+//    private String inProcessLivenessJudgePolicy;//考试过程中活体检测结果判定规则,any:任意一次通过,all:全部都要通过,more:通过次数大于失败次数
+//
+//    @ApiModelProperty(name = "是否允许使用摄像头拍照答题,0:不允许,1:允许")
+//    private Integer cameraPhotoUpload;//是否允许使用摄像头拍照答题,0:不允许,1:允许
+//
+//    @ApiModelProperty(name = "考场开始时间")
+//    private Long startTime;//考场开始时间
+//
+//    @ApiModelProperty(name = "考场结束时间")
+//    private Long finishTime;//考场结束时间
+
+    @ApiModelProperty(name = "剩余考试次数")
+    private Integer leftExamCount;//剩余考试次数
+
+//    @ApiModelProperty(name = "是否允许使用移动端拍照答题,0:不开启,1:开启")
+//    private Integer mobilePhotoUpload;//是否允许使用移动端拍照答题,0:不开启,1:开启
+//
+//    @ApiModelProperty(name = "客户端监控是否启用音频与麦克风")
+//    private Boolean monitorAudioEnable = false;//客户端监控是否启用音频与麦克风
+//
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(name = "考试id")
+    private Long examId;//考试id
+//
+//    @ApiModelProperty(name = "硬件检测集合")
+//    private List<String> hardwareTest;//硬件检测
+
+    public TEExamActivityWaitDto() {
+
+    }
+
+    public TEExamActivityWaitDto(ExamCacheBean ec, ExamActivityCacheBean examActivityCacheBean, ExamStudentCacheBean examStudentCacheBean, Long examStudentId, ExamCourseCacheBean examCourseCacheBean,
+                                 Long startTime, Long endTime, Integer openingSeconds, Integer minDurationSeconds, Integer maxDurationSeconds, Integer forceFinish) {
+        this.id = examActivityCacheBean.getId();
+        this.code = examActivityCacheBean.getCode();
+        this.examStudentId = examStudentId;
+        this.courseCode = examStudentCacheBean.getCourseCode();
+        this.courseName = examStudentCacheBean.getCourseName();
+        if (Objects.nonNull(examActivityCacheBean.getPrepareSeconds())) {
+            this.prepareTime = startTime - (examActivityCacheBean.getPrepareSeconds() * 1000);
+        } else if (Objects.nonNull(ec.getPrepareSeconds())) {
+            this.prepareTime = startTime - (ec.getPrepareSeconds() * 1000);
+        }
+        if (Objects.nonNull(startTime)) {
+            this.minStartTime = startTime;
+        } else {
+            this.minStartTime = ec.getStartTime();
+        }
+        if (Objects.nonNull(openingSeconds)) {
+            this.maxStartTime = startTime + (openingSeconds * 1000);
+        } else if (Objects.nonNull(ec.getMaxDurationSeconds())) {
+            this.maxStartTime = startTime + (ec.getOpeningSeconds() * 1000);
+        }
+        if (Objects.equals(ec.getMode(), ExamModeEnum.ANYTIME) || (Objects.equals(ec.getMode(), ExamModeEnum.TOGETHER) && forceFinish == 0)) {
+            this.maxFinishTime = null;
+        } else {
+            this.maxFinishTime = Objects.nonNull(endTime) ? endTime : ec.getEndTime();
+        }
+//        this.cameraPhotoUpload = ec.getCameraPhotoUpload();
+//        this.entryAuthenticationPolicy = ec.getEntryAuthenticationPolicy().name();
+//        if (Objects.nonNull(ec.getMonitorVideoSource()) && !Objects.equals(ec.getMonitorVideoSource().toString().trim().replaceAll(" ", ""), "")) {
+//            this.setMonitorVideoSource(Arrays.asList(ec.getMonitorVideoSource().trim().toUpperCase().split(",")));
+//            //加入monitorAudioEnable逻辑
+//            if (ec.getMonitorVideoSource().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_SCREEN.name()) || ec.getMonitorVideoSource().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())) {
+//                this.monitorAudioEnable = true;
+//            }
+//            //加入hardwareTest逻辑
+//            if (ec.getMonitorVideoSource().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name()) || (Objects.nonNull(this.getEntryAuthenticationPolicy()) && (Objects.equals(this.getEntryAuthenticationPolicy(), EntryAuthenticationPolicyEnum.LIVENESS_VERIFY.name()) || Objects.equals(this.getEntryAuthenticationPolicy(), EntryAuthenticationPolicyEnum.FACE_VERIFY_FORCE.name()))) || (Objects.nonNull(this.getCameraPhotoUpload()) && this.getCameraPhotoUpload() == 1)) {
+//                if (Objects.isNull(this.hardwareTest)) {
+//                    this.hardwareTest = new ArrayList<>();
+//                }
+//                this.hardwareTest.add(HardwareTestEnum.CAMERA.name());
+//                //取course缓存
+//                if (Objects.nonNull(examCourseCacheBean) && Objects.nonNull(examCourseCacheBean.getHasAudio()) && examCourseCacheBean.getHasAudio() == 1) {
+//                    this.hardwareTest.add(HardwareTestEnum.AUDIOPLAY.name());
+//                }
+//            }
+//        } else {
+//            this.setMonitorVideoSource(null);
+//        }
+//        this.openingSeconds = Objects.nonNull(openingSeconds) ? openingSeconds : ec.getOpeningSeconds();
+//        this.activityOpeningSeconds = openingSeconds;
+//        this.prepareSeconds = Objects.nonNull(examActivityCacheBean.getPrepareSeconds()) ? examActivityCacheBean.getPrepareSeconds() : ec.getPrepareSeconds();
+//        this.activityPrepareSeconds = examActivityCacheBean.getPrepareSeconds();
+        this.minDurationSeconds = minDurationSeconds;
+        this.maxDurationSeconds = Objects.nonNull(maxDurationSeconds) ? maxDurationSeconds : ec.getMaxDurationSeconds();
+//        this.activityMaxDurationSeconds = maxDurationSeconds;
+//        this.examCount = ec.getExamCount();
+//        this.forceFinish = forceFinish;
+//        this.inProcessFaceVerify = ec.getInProcessFaceVerify();
+//        this.inProcessFaceStrangerIgnore = ec.getInProcessFaceStrangerIgnore();
+//        this.inProcessLivenessVerify = ec.getInProcessLivenessVerify();
+//        this.inProcessRealnessVerify = ec.getInProcessRealnessVerify();
+//        if (Objects.nonNull(ec.getInProcessLivenessFixedRange())) {
+//            String[] longs = ec.getInProcessLivenessFixedRange().trim().split(",");
+//            List inProcessLivenessFixedRange = new ArrayList();
+//            for (int i = 0; i < longs.length; i++) {
+//                Integer integer = Integer.valueOf(longs[i].trim());
+//                inProcessLivenessFixedRange.add(integer);
+//            }
+//            if (Objects.equals(inProcessLivenessFixedRange.toString().trim().replaceAll(" ", ""), "")) {
+//                this.setInProcessLivenessFixedRange(null);
+//            } else {
+//                this.setInProcessLivenessFixedRange(inProcessLivenessFixedRange);
+//            }
+//        }
+//        this.inProcessLivenessJudgePolicy = ec.getInProcessLivenessJudgePolicy().name();
+//        this.startTime = startTime;
+//        this.finishTime = endTime;
+        this.leftExamCount = (ec.getExamCount().intValue() - examStudentCacheBean.getAlreadyExamCount().intValue()) < 0 ? 0 : ec.getExamCount().intValue() - examStudentCacheBean.getAlreadyExamCount().intValue();
+//        this.mobilePhotoUpload = ec.getMobilePhotoUpload();
+//        this.examId = ec.getId();
+    }
+
+//    public Integer getInProcessRealnessVerify() {
+//        return inProcessRealnessVerify;
+//    }
+//
+//    public void setInProcessRealnessVerify(Integer inProcessRealnessVerify) {
+//        this.inProcessRealnessVerify = inProcessRealnessVerify;
+//    }
+//
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+//
+//    public Boolean getMonitorAudioEnable() {
+//        return monitorAudioEnable;
+//    }
+//
+//    public void setMonitorAudioEnable(Boolean monitorAudioEnable) {
+//        this.monitorAudioEnable = monitorAudioEnable;
+//    }
+//
+//    public List<String> getHardwareTest() {
+//        return hardwareTest;
+//    }
+//
+//    public void setHardwareTest(List<String> hardwareTest) {
+//        this.hardwareTest = hardwareTest;
+//    }
+//
+//    public Integer getMobilePhotoUpload() {
+//        return mobilePhotoUpload;
+//    }
+//
+//    public void setMobilePhotoUpload(Integer mobilePhotoUpload) {
+//        this.mobilePhotoUpload = mobilePhotoUpload;
+//    }
+
+    public Integer getLeftExamCount() {
+        return leftExamCount;
+    }
+
+    public void setLeftExamCount(Integer leftExamCount) {
+        this.leftExamCount = leftExamCount;
+    }
+
+//    public String getMonitorVideoSourceStr() {
+//        return monitorVideoSourceStr;
+//    }
+//
+//    public void setMonitorVideoSourceStr(String monitorVideoSourceStr) {
+//        this.monitorVideoSourceStr = monitorVideoSourceStr;
+//    }
+//
+//    public String getInProcessLivenessFixedRangeStr() {
+//        return inProcessLivenessFixedRangeStr;
+//    }
+//
+//    public void setInProcessLivenessFixedRangeStr(String inProcessLivenessFixedRangeStr) {
+//        this.inProcessLivenessFixedRangeStr = inProcessLivenessFixedRangeStr;
+//    }
+
+    public Long getPrepareTime() {
+        return prepareTime;
+    }
+
+    public void setPrepareTime(Long prepareTime) {
+        this.prepareTime = prepareTime;
+    }
+
+    public Long getMinStartTime() {
+        return minStartTime;
+    }
+
+    public void setMinStartTime(Long minStartTime) {
+        this.minStartTime = minStartTime;
+    }
+
+    public Long getMaxStartTime() {
+        return maxStartTime;
+    }
+
+    public void setMaxStartTime(Long maxStartTime) {
+        this.maxStartTime = maxStartTime;
+    }
+
+    public Long getMaxFinishTime() {
+        return maxFinishTime;
+    }
+
+    public void setMaxFinishTime(Long maxFinishTime) {
+        this.maxFinishTime = maxFinishTime;
+    }
+
+//    public List<String> getMonitorVideoSource() {
+//        return monitorVideoSource;
+//    }
+//
+//    public void setMonitorVideoSource(List<String> monitorVideoSource) {
+//        this.monitorVideoSource = monitorVideoSource;
+//    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Long getExamStudentId() {
+        return examStudentId;
+    }
+
+    public void setExamStudentId(Long examStudentId) {
+        this.examStudentId = examStudentId;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+//    public Integer getOpeningSeconds() {
+//        return openingSeconds;
+//    }
+//
+//    public void setOpeningSeconds(Integer openingSeconds) {
+//        this.openingSeconds = openingSeconds;
+//    }
+//
+//    public Integer getActivityOpeningSeconds() {
+//        return activityOpeningSeconds;
+//    }
+//
+//    public void setActivityOpeningSeconds(Integer activityOpeningSeconds) {
+//        this.activityOpeningSeconds = activityOpeningSeconds;
+//    }
+//
+//    public Integer getPrepareSeconds() {
+//        return prepareSeconds;
+//    }
+//
+//    public void setPrepareSeconds(Integer prepareSeconds) {
+//        this.prepareSeconds = prepareSeconds;
+//    }
+//
+//    public Integer getActivityPrepareSeconds() {
+//        return activityPrepareSeconds;
+//    }
+//
+//    public void setActivityPrepareSeconds(Integer activityPrepareSeconds) {
+//        this.activityPrepareSeconds = activityPrepareSeconds;
+//    }
+
+    public Integer getMinDurationSeconds() {
+        return minDurationSeconds;
+    }
+
+    public void setMinDurationSeconds(Integer minDurationSeconds) {
+        this.minDurationSeconds = minDurationSeconds;
+    }
+
+    public Integer getMaxDurationSeconds() {
+        return maxDurationSeconds;
+    }
+
+    public void setMaxDurationSeconds(Integer maxDurationSeconds) {
+        this.maxDurationSeconds = maxDurationSeconds;
+    }
+
+//    public Integer getActivityMaxDurationSeconds() {
+//        return activityMaxDurationSeconds;
+//    }
+//
+//    public void setActivityMaxDurationSeconds(Integer activityMaxDurationSeconds) {
+//        this.activityMaxDurationSeconds = activityMaxDurationSeconds;
+//    }
+//
+//    public void setInProcessLivenessFixedRange(List<Integer> inProcessLivenessFixedRange) {
+//        this.inProcessLivenessFixedRange = inProcessLivenessFixedRange;
+//    }
+//
+//    public Integer getExamCount() {
+//        return examCount;
+//    }
+//
+//    public void setExamCount(Integer examCount) {
+//        this.examCount = examCount;
+//    }
+//
+//    public Integer getForceFinish() {
+//        return forceFinish;
+//    }
+//
+//    public void setForceFinish(Integer forceFinish) {
+//        this.forceFinish = forceFinish;
+//    }
+//
+//    public String getEntryAuthenticationPolicy() {
+//        return entryAuthenticationPolicy;
+//    }
+//
+//    public void setEntryAuthenticationPolicy(String entryAuthenticationPolicy) {
+//        this.entryAuthenticationPolicy = entryAuthenticationPolicy;
+//    }
+//
+//    public Integer getInProcessFaceVerify() {
+//        return inProcessFaceVerify;
+//    }
+//
+//    public void setInProcessFaceVerify(Integer inProcessFaceVerify) {
+//        this.inProcessFaceVerify = inProcessFaceVerify;
+//    }
+//
+//    public Integer getInProcessFaceStrangerIgnore() {
+//        return inProcessFaceStrangerIgnore;
+//    }
+//
+//    public void setInProcessFaceStrangerIgnore(Integer inProcessFaceStrangerIgnore) {
+//        this.inProcessFaceStrangerIgnore = inProcessFaceStrangerIgnore;
+//    }
+//
+//    public Integer getInProcessLivenessVerify() {
+//        return inProcessLivenessVerify;
+//    }
+//
+//    public void setInProcessLivenessVerify(Integer inProcessLivenessVerify) {
+//        this.inProcessLivenessVerify = inProcessLivenessVerify;
+//    }
+//
+//    public List<Integer> getInProcessLivenessFixedRange() {
+//        return inProcessLivenessFixedRange;
+//    }
+//
+//    public String getInProcessLivenessJudgePolicy() {
+//        return inProcessLivenessJudgePolicy;
+//    }
+//
+//    public void setInProcessLivenessJudgePolicy(String inProcessLivenessJudgePolicy) {
+//        this.inProcessLivenessJudgePolicy = inProcessLivenessJudgePolicy;
+//    }
+//
+//    public Integer getCameraPhotoUpload() {
+//        return cameraPhotoUpload;
+//    }
+//
+//    public void setCameraPhotoUpload(Integer cameraPhotoUpload) {
+//        this.cameraPhotoUpload = cameraPhotoUpload;
+//    }
+//
+//    public Long getStartTime() {
+//        return startTime;
+//    }
+//
+//    public void setStartTime(Long startTime) {
+//        this.startTime = startTime;
+//    }
+//
+//    public Long getFinishTime() {
+//        return finishTime;
+//    }
+//
+//    public void setFinishTime(Long finishTime) {
+//        this.finishTime = finishTime;
+//    }
+}

+ 64 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamWaitDto.java

@@ -0,0 +1,64 @@
+package com.qmth.themis.business.dto.response;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 考试候考dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/8/3
+ */
+public class TEExamWaitDto implements Serializable {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(name = "考试批次id")
+    private Long id;//考试id
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(name = "考试场次id")
+    private Long examActivityId;//考试场次id
+
+    @ApiModelProperty(name = "考试名称")
+    private String name;//考试名称
+
+    @ApiModelProperty(name = "考试场次集合")
+    private List<TEExamActivityWaitDto> activities;
+
+    public Long getExamActivityId() {
+        return examActivityId;
+    }
+
+    public void setExamActivityId(Long examActivityId) {
+        this.examActivityId = examActivityId;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<TEExamActivityWaitDto> getActivities() {
+        return activities;
+    }
+
+    public void setActivities(List<TEExamActivityWaitDto> activities) {
+        this.activities = activities;
+    }
+}

+ 2 - 1
themis-business/src/main/java/com/qmth/themis/business/service/TEExamActivityService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
 import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamActivityQueryDto;
 import com.qmth.themis.business.dto.response.TEExamActivityQueryDto;
+import com.qmth.themis.business.dto.response.TEExamActivityWaitDto;
 import com.qmth.themis.business.entity.TEExamActivity;
 import com.qmth.themis.business.entity.TEExamActivity;
 
 
 import java.util.List;
 import java.util.List;
@@ -81,7 +82,7 @@ public interface TEExamActivityService extends IService<TEExamActivity> {
      * @param mode
      * @param mode
      * @return
      * @return
      */
      */
-    public List<TEExamActivityDto> getWaitingExam(Long studentId, Set<Long> examActivityIds, String mode);
+    public List<TEExamActivityWaitDto> getWaitingExam(Long studentId, Set<Long> examActivityIds, String mode);
 
 
     /**
     /**
      * 获取场次缓存
      * 获取场次缓存

+ 2 - 1
themis-business/src/main/java/com/qmth/themis/business/service/TEExamService.java

@@ -9,6 +9,7 @@ import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamQueryDto;
 import com.qmth.themis.business.dto.response.TEExamQueryDto;
+import com.qmth.themis.business.dto.response.TEExamWaitDto;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.enums.InvigilateMonitorStatusEnum;
 import com.qmth.themis.business.enums.InvigilateMonitorStatusEnum;
 import com.qmth.themis.business.enums.ScoreStatusEnum;
 import com.qmth.themis.business.enums.ScoreStatusEnum;
@@ -51,7 +52,7 @@ public interface TEExamService extends IService<TEExam> {
      * @param orgId
      * @param orgId
      * @return
      * @return
      */
      */
-    public List<TEExamDto> getWaitingExam(Long studentId, Long examId, Long orgId);
+    public List<TEExamWaitDto> getWaitingExam(Long studentId, Long examId, Long orgId);
 
 
     /**
     /**
      * 开始候考
      * 开始候考

+ 2 - 1
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamActivityServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.Set;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 
 
+import com.qmth.themis.business.dto.response.TEExamActivityWaitDto;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CachePut;
 import org.springframework.cache.annotation.CachePut;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.cache.annotation.Cacheable;
@@ -112,7 +113,7 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public List<TEExamActivityDto> getWaitingExam(Long studentId, Set<Long> examActivityIds, String mode) {
+    public List<TEExamActivityWaitDto> getWaitingExam(Long studentId, Set<Long> examActivityIds, String mode) {
         return teExamActivityMapper.getWaitingExam(studentId, examActivityIds, mode);
         return teExamActivityMapper.getWaitingExam(studentId, examActivityIds, mode);
     }
     }
 
 

+ 54 - 56
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -14,9 +14,7 @@ import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dao.TEExamMapper;
 import com.qmth.themis.business.dao.TEExamMapper;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
 import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
-import com.qmth.themis.business.dto.response.TEExamActivityDto;
-import com.qmth.themis.business.dto.response.TEExamDto;
-import com.qmth.themis.business.dto.response.TEExamQueryDto;
+import com.qmth.themis.business.dto.response.*;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.entity.TBTaskHistory;
 import com.qmth.themis.business.entity.TBTaskHistory;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TEExam;
@@ -130,22 +128,22 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public List<TEExamDto> getWaitingExam(Long studentId, Long examId, Long orgId) {
-        List<TEExamDto> list = teExamMapper.getWaitingExam(studentId, examId, orgId);
+    public List<TEExamWaitDto> getWaitingExam(Long studentId, Long examId, Long orgId) {
+        List<TEExamWaitDto> list = teExamMapper.getWaitingExam(studentId, examId, orgId);
         if (Objects.nonNull(list) && list.size() > 0) {
         if (Objects.nonNull(list) && list.size() > 0) {
             Set<Long> examActivityIds = list.stream().map(s -> s.getExamActivityId()).collect(Collectors.toSet());
             Set<Long> examActivityIds = list.stream().map(s -> s.getExamActivityId()).collect(Collectors.toSet());
-            List<TEExamActivityDto> teExamActivityList = teExamActivityService
+            List<TEExamActivityWaitDto> teExamActivityWaitList = teExamActivityService
                     .getWaitingExam(studentId, examActivityIds, null);
                     .getWaitingExam(studentId, examActivityIds, null);
-            Map<Long, Set<TEExamActivityDto>> map = new HashMap<>();
-            teExamActivityList.forEach(v -> {
-                Set<TEExamActivityDto> teExamActivityDtos = null;
+            Map<Long, Set<TEExamActivityWaitDto>> map = new HashMap<>();
+            teExamActivityWaitList.forEach(v -> {
+                Set<TEExamActivityWaitDto> teExamActivityWaitDtos = null;
                 if (Objects.isNull(map.get(v.getExamId()))) {
                 if (Objects.isNull(map.get(v.getExamId()))) {
-                    teExamActivityDtos = new HashSet<>();
+                    teExamActivityWaitDtos = new HashSet<>();
                 } else {
                 } else {
-                    teExamActivityDtos = map.get(v.getExamId());
+                    teExamActivityWaitDtos = map.get(v.getExamId());
                 }
                 }
-                teExamActivityDtos.add(v);
-                map.put(v.getExamId(), teExamActivityDtos);
+                teExamActivityWaitDtos.add(v);
+                map.put(v.getExamId(), teExamActivityWaitDtos);
                 ExamCacheBean examCache = getExamCacheBeanNative(v.getExamId());
                 ExamCacheBean examCache = getExamCacheBeanNative(v.getExamId());
                 ExamStudentCacheBean examStudentCacheBean = teExamStudentService
                 ExamStudentCacheBean examStudentCacheBean = teExamStudentService
                         .getExamStudentCacheBean(v.getExamStudentId());
                         .getExamStudentCacheBean(v.getExamStudentId());
@@ -155,49 +153,49 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
                                 0 :
                                 0 :
                                 examCache.getExamCount().intValue() - (examStudentCacheBean.getAlreadyExamCount()
                                 examCache.getExamCount().intValue() - (examStudentCacheBean.getAlreadyExamCount()
                                         .intValue())));
                                         .intValue())));
-                if (Objects.nonNull(v.getInProcessLivenessFixedRangeStr())) {
-                    String[] longs = v.getInProcessLivenessFixedRangeStr().trim().replaceAll(" ", "").split(",");
-                    List inProcessLivenessFixedRange = new ArrayList();
-                    for (int i = 0; i < longs.length; i++) {
-                        Integer integer = Integer.valueOf(longs[i].trim());
-                        inProcessLivenessFixedRange.add(integer);
-                    }
-                    if (Objects.equals(inProcessLivenessFixedRange.toString().trim().replaceAll(" ", ""), "")) {
-                        v.setInProcessLivenessFixedRange(null);
-                    } else {
-                        v.setInProcessLivenessFixedRange(inProcessLivenessFixedRange);
-                    }
-                }
-                if (Objects.nonNull(v.getMonitorVideoSourceStr()) && !Objects
-                        .equals(v.getMonitorVideoSourceStr().toString().trim().replaceAll(" ", ""), "")) {
-                    v.setMonitorVideoSource(Arrays.asList(
-                            v.getMonitorVideoSourceStr().trim().toUpperCase().replaceAll(" ", "").split(",")));
-                    v.setMonitorAudioEnable(examCache.getMonitorAudioEnable());
-                    //加入hardwareTest逻辑
-                    if (v.getMonitorVideoSourceStr().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
-                            || (Objects.nonNull(v.getEntryAuthenticationPolicy()) && (
-                            Objects.equals(v.getEntryAuthenticationPolicy(),
-                                    EntryAuthenticationPolicyEnum.LIVENESS_VERIFY.name()) || Objects
-                                    .equals(v.getEntryAuthenticationPolicy(),
-                                            EntryAuthenticationPolicyEnum.FACE_VERIFY_FORCE.name()))) || (
-                            Objects.nonNull(v.getCameraPhotoUpload()) && v.getCameraPhotoUpload() == 1)) {
-                        List<String> hardwareTest = v.getHardwareTest();
-                        if (Objects.isNull(hardwareTest)) {
-                            hardwareTest = new ArrayList<>();
-                        }
-                        hardwareTest.add(HardwareTestEnum.CAMERA.name());
-                        //取course缓存
-                        ExamCourseCacheBean examCourseCacheBean = teExamCourseService
-                                .getExamCourseCacheBean(v.getExamId(), v.getCourseCode());
-                        if (Objects.nonNull(examCourseCacheBean) && Objects.nonNull(examCourseCacheBean.getHasAudio())
-                                && examCourseCacheBean.getHasAudio() == 1) {
-                            hardwareTest.add(HardwareTestEnum.AUDIOPLAY.name());
-                        }
-                        v.setHardwareTest(hardwareTest);
-                    }
-                } else {
-                    v.setMonitorVideoSource(null);
-                }
+//                if (Objects.nonNull(v.getInProcessLivenessFixedRangeStr())) {
+//                    String[] longs = v.getInProcessLivenessFixedRangeStr().trim().replaceAll(" ", "").split(",");
+//                    List inProcessLivenessFixedRange = new ArrayList();
+//                    for (int i = 0; i < longs.length; i++) {
+//                        Integer integer = Integer.valueOf(longs[i].trim());
+//                        inProcessLivenessFixedRange.add(integer);
+//                    }
+//                    if (Objects.equals(inProcessLivenessFixedRange.toString().trim().replaceAll(" ", ""), "")) {
+//                        v.setInProcessLivenessFixedRange(null);
+//                    } else {
+//                        v.setInProcessLivenessFixedRange(inProcessLivenessFixedRange);
+//                    }
+//                }
+//                if (Objects.nonNull(v.getMonitorVideoSourceStr()) && !Objects
+//                        .equals(v.getMonitorVideoSourceStr().toString().trim().replaceAll(" ", ""), "")) {
+//                    v.setMonitorVideoSource(Arrays.asList(
+//                            v.getMonitorVideoSourceStr().trim().toUpperCase().replaceAll(" ", "").split(",")));
+//                    v.setMonitorAudioEnable(examCache.getMonitorAudioEnable());
+//                    //加入hardwareTest逻辑
+//                    if (v.getMonitorVideoSourceStr().toUpperCase().contains(MonitorVideoSourceEnum.CLIENT_CAMERA.name())
+//                            || (Objects.nonNull(v.getEntryAuthenticationPolicy()) && (
+//                            Objects.equals(v.getEntryAuthenticationPolicy(),
+//                                    EntryAuthenticationPolicyEnum.LIVENESS_VERIFY.name()) || Objects
+//                                    .equals(v.getEntryAuthenticationPolicy(),
+//                                            EntryAuthenticationPolicyEnum.FACE_VERIFY_FORCE.name()))) || (
+//                            Objects.nonNull(v.getCameraPhotoUpload()) && v.getCameraPhotoUpload() == 1)) {
+//                        List<String> hardwareTest = v.getHardwareTest();
+//                        if (Objects.isNull(hardwareTest)) {
+//                            hardwareTest = new ArrayList<>();
+//                        }
+//                        hardwareTest.add(HardwareTestEnum.CAMERA.name());
+//                        //取course缓存
+//                        ExamCourseCacheBean examCourseCacheBean = teExamCourseService
+//                                .getExamCourseCacheBean(v.getExamId(), v.getCourseCode());
+//                        if (Objects.nonNull(examCourseCacheBean) && Objects.nonNull(examCourseCacheBean.getHasAudio())
+//                                && examCourseCacheBean.getHasAudio() == 1) {
+//                            hardwareTest.add(HardwareTestEnum.AUDIOPLAY.name());
+//                        }
+//                        v.setHardwareTest(hardwareTest);
+//                    }
+//                } else {
+//                    v.setMonitorVideoSource(null);
+//                }
             });
             });
             list.forEach(s -> {
             list.forEach(s -> {
                 s.setActivities(new ArrayList<>(map.get(s.getId())));
                 s.setActivities(new ArrayList<>(map.get(s.getId())));

+ 20 - 20
themis-business/src/main/resources/mapper/TEExamActivityMapper.xml

@@ -111,38 +111,38 @@
         </where> ) t order by t.code
         </where> ) t order by t.code
     </select>
     </select>
 
 
-    <select id="getWaitingExam" resultType="com.qmth.themis.business.dto.response.TEExamActivityDto">
+    <select id="getWaitingExam" resultType="com.qmth.themis.business.dto.response.TEExamActivityWaitDto">
          select
          select
             teea.id,
             teea.id,
             teea.code,
             teea.code,
             tees.id as examStudentId,
             tees.id as examStudentId,
             tees.course_code as courseCode,
             tees.course_code as courseCode,
             tees.course_name as courseName,
             tees.course_name as courseName,
-            IFNULL(teea.opening_seconds,tee.opening_seconds) as openingSeconds,
-            teea.opening_seconds as activityOpeningSeconds,
+            <!--IFNULL(teea.opening_seconds,tee.opening_seconds) as openingSeconds,
+             teea.opening_seconds as activityOpeningSeconds,-->
             (teea.start_time / 1000 - IFNULL(teea.prepare_seconds, tee.prepare_seconds)) * 1000 as prepareTime,
             (teea.start_time / 1000 - IFNULL(teea.prepare_seconds, tee.prepare_seconds)) * 1000 as prepareTime,
             IFNULL(teea.start_time, tee.start_time) as minStartTime,
             IFNULL(teea.start_time, tee.start_time) as minStartTime,
             (teea.start_time / 1000 + IFNULL(teea.opening_seconds, tee.opening_seconds)) * 1000 as maxStartTime,
             (teea.start_time / 1000 + IFNULL(teea.opening_seconds, tee.opening_seconds)) * 1000 as maxStartTime,
             IF(tee.mode = 'TOGETHER' and tee.force_finish = 1, IFNULL(teea.finish_time , tee.end_time), null) as maxFinishTime,
             IF(tee.mode = 'TOGETHER' and tee.force_finish = 1, IFNULL(teea.finish_time , tee.end_time), null) as maxFinishTime,
-            tee.monitor_video_source as monitorVideoSourceStr,
-            IFNULL(teea.prepare_seconds,tee.prepare_seconds) as prepareSeconds,
-            teea.prepare_seconds as activityPrepareSeconds,
+            <!--tee.monitor_video_source as monitorVideoSourceStr,
+             IFNULL(teea.prepare_seconds,tee.prepare_seconds) as prepareSeconds,
+             teea.prepare_seconds as activityPrepareSeconds,-->
             tee.min_duration_seconds as minDurationSeconds,
             tee.min_duration_seconds as minDurationSeconds,
             IFNULL(teea.max_duration_seconds,tee.max_duration_seconds) as maxDurationSeconds,
             IFNULL(teea.max_duration_seconds,tee.max_duration_seconds) as maxDurationSeconds,
-            teea.max_duration_seconds as activityMaxDurationSeconds,
-            tee.exam_count as examCount,
-            tee.force_finish as forceFinish,
-            tee.entry_authentication_policy as entryAuthenticationPolicy,
-            tee.in_process_face_verify as inProcessFaceVerify,
-            tee.in_process_face_stranger_ignore as inProcessFaceStrangerIgnore,
-            tee.in_process_liveness_verify as inProcessLivenessVerify,
-            tee.in_process_realness_verify as inProcessRealnessVerify,
-            tee.in_process_liveness_fixed_range as inProcessLivenessFixedRangeStr,
-            tee.in_process_liveness_judge_policy as inProcessLivenessJudgePolicy,
-            tee.camera_photo_upload as cameraPhotoUpload,
-            tee.mobile_photo_upload as mobilePhotoUpload,
-            teea.start_time as startTime,
-            teea.finish_time as finishTime,
+            <!--teea.max_duration_seconds as activityMaxDurationSeconds,
+             tee.exam_count as examCount,
+             tee.force_finish as forceFinish,
+             tee.entry_authentication_policy as entryAuthenticationPolicy,
+             tee.in_process_face_verify as inProcessFaceVerify,
+             tee.in_process_face_stranger_ignore as inProcessFaceStrangerIgnore,
+             tee.in_process_liveness_verify as inProcessLivenessVerify,
+             tee.in_process_realness_verify as inProcessRealnessVerify,
+             tee.in_process_liveness_fixed_range as inProcessLivenessFixedRangeStr,
+             tee.in_process_liveness_judge_policy as inProcessLivenessJudgePolicy,
+             tee.camera_photo_upload as cameraPhotoUpload,
+             tee.mobile_photo_upload as mobilePhotoUpload,
+             teea.start_time as startTime,
+             teea.finish_time as finishTime,-->
             tee.id as examId
             tee.id as examId
         from
         from
             t_e_exam_student tees
             t_e_exam_student tees

+ 4 - 3
themis-business/src/main/resources/mapper/TEExamMapper.xml

@@ -137,14 +137,15 @@
          order by t.createTime desc
          order by t.createTime desc
     </select>
     </select>
 
 
-    <select id="getWaitingExam" resultType="com.qmth.themis.business.dto.response.TEExamDto">
+    <select id="getWaitingExam" resultType="com.qmth.themis.business.dto.response.TEExamWaitDto">
         select
         select
         t.*
         t.*
         from
         from
         (
         (
             select
             select
-            distinct tee.id, teea.id as examActivityId,tee.name, tee.mode, tee.pre_notice as preNotice, tee.pre_notice_stay_seconds as
-            preNoticeStaySeconds, tee.post_notice as postNotice,
+            distinct tee.id,
+            tee.name,
+            teea.id as examActivityId,
             <!--FLOOR((teea.finish_time - teea.start_time) / (24*60*60*1000)) as diffSum1,
             <!--FLOOR((teea.finish_time - teea.start_time) / (24*60*60*1000)) as diffSum1,
             FLOOR(((teea.finish_time - teea.start_time) / (24*60*60*1000) - (unix_timestamp(current_timestamp()) * 1000 - teea.start_time) / (24*60*60*1000))) as reallyTime1,-->
             FLOOR(((teea.finish_time - teea.start_time) / (24*60*60*1000) - (unix_timestamp(current_timestamp()) * 1000 - teea.start_time) / (24*60*60*1000))) as reallyTime1,-->
             datediff(FROM_UNIXTIME(teea.finish_time / 1000,'%Y-%m-%d %H:%i:%s'),FROM_UNIXTIME(teea.start_time / 1000,'%Y-%m-%d %H:%i:%s')) as diffSum,
             datediff(FROM_UNIXTIME(teea.finish_time / 1000,'%Y-%m-%d %H:%i:%s'),FROM_UNIXTIME(teea.start_time / 1000,'%Y-%m-%d %H:%i:%s')) as diffSum,

+ 2 - 1
themis-exam/src/main/java/com/qmth/themis/exam/api/TEExamController.java

@@ -11,6 +11,7 @@ import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
 import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
+import com.qmth.themis.business.dto.response.TEExamWaitDto;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.MqDtoService;
@@ -88,7 +89,7 @@ public class TEExamController {
     }) @ApiParam(value = "考试口令", required = true) @RequestBody Map<String, Object> mapParameter) {
     }) @ApiParam(value = "考试口令", required = true) @RequestBody Map<String, Object> mapParameter) {
         Long examId = Objects.nonNull(mapParameter.get("examId")) ? Long.parseLong(String.valueOf(mapParameter.get("examId"))) : null;
         Long examId = Objects.nonNull(mapParameter.get("examId")) ? Long.parseLong(String.valueOf(mapParameter.get("examId"))) : null;
         TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
         TEStudentCacheDto teStudent = (TEStudentCacheDto) ServletUtil.getRequestStudentAccount();
-        List<TEExamDto> list = teExamService.getWaitingExam(teStudent.getId(), examId, teStudent.getOrgId());
+        List<TEExamWaitDto> list = teExamService.getWaitingExam(teStudent.getId(), examId, teStudent.getOrgId());
         return ResultUtil.ok(Collections.singletonMap("waiting", list));
         return ResultUtil.ok(Collections.singletonMap("waiting", list));
     }
     }
 
 

+ 3 - 2
themis-exam/src/main/java/com/qmth/themis/exam/api/TEStudentController.java

@@ -20,6 +20,7 @@ import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamResultDto;
 import com.qmth.themis.business.dto.response.TEExamResultDto;
+import com.qmth.themis.business.dto.response.TEExamWaitDto;
 import com.qmth.themis.business.entity.TBOrg;
 import com.qmth.themis.business.entity.TBOrg;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.entity.TEConfig;
 import com.qmth.themis.business.entity.TEConfig;
@@ -241,7 +242,7 @@ public class TEStudentController {
         //获取未完考试
         //获取未完考试
         if (Objects.isNull(ExamingDataCacheUtil.getUnFinishedRecordId(teStudent.getId()))) {
         if (Objects.isNull(ExamingDataCacheUtil.getUnFinishedRecordId(teStudent.getId()))) {
             //获取待考列表
             //获取待考列表
-            List<TEExamDto> list = teExamService.getWaitingExam(teStudent.getId(), examId, orgId);
+            List<TEExamWaitDto> list = teExamService.getWaitingExam(teStudent.getId(), examId, orgId);
             if (Objects.nonNull(list) && list.size() > 0) {
             if (Objects.nonNull(list) && list.size() > 0) {
                 map.put("waiting", list);
                 map.put("waiting", list);
             }
             }
@@ -361,7 +362,7 @@ public class TEStudentController {
      * @return
      * @return
      */
      */
     private Map<String, Object> getWaitList(Long studentId, Long examId, Long orgId, Map<String, Object> map) {
     private Map<String, Object> getWaitList(Long studentId, Long examId, Long orgId, Map<String, Object> map) {
-        List<TEExamDto> list = teExamService.getWaitingExam(studentId, examId, orgId);
+        List<TEExamWaitDto> list = teExamService.getWaitingExam(studentId, examId, orgId);
         if (Objects.nonNull(list) && list.size() > 0) {
         if (Objects.nonNull(list) && list.size() > 0) {
             map.put("waiting", list);
             map.put("waiting", list);
         }
         }