wangliang 4 лет назад
Родитель
Сommit
b1b8c4fc4e

+ 11 - 0
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCacheBean.java

@@ -167,6 +167,17 @@ public class ExamCacheBean implements Serializable {
     //监考状态,NOT_START:未开始,START:监考中,FINISHED:已结束
     private InvigilateMonitorStatusEnum monitorStatus;
 
+    //考试过程中是否启用真实性检测,0:不启用,1:启用
+    private Integer inProcessRealnessVerify;
+
+    public Integer getInProcessRealnessVerify() {
+        return inProcessRealnessVerify;
+    }
+
+    public void setInProcessRealnessVerify(Integer inProcessRealnessVerify) {
+        this.inProcessRealnessVerify = inProcessRealnessVerify;
+    }
+
     public InvigilateVerifyEnum getInvigilateVerify() {
         return invigilateVerify;
     }

+ 25 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/request/TEExamDto.java

@@ -180,6 +180,14 @@ public class TEExamDto extends BaseEntity {
     @TableField(value = "invigilate_verify")
     private InvigilateVerifyEnum invigilateVerify;
 
+    @ApiModelProperty(value = "监考状态,NOT_START:未开始,START:监考中,FINISHED:已结束")
+    @TableField("monitor_status")
+    private InvigilateMonitorStatusEnum monitorStatus;
+
+    @ApiModelProperty(value = "考试过程中是否启用真实性检测,0:不启用,1:启用")
+    @TableField(value = "in_process_realness_verify")
+    private Integer inProcessRealnessVerify;
+
     public TEExamDto() {
 
     }
@@ -215,6 +223,7 @@ public class TEExamDto extends BaseEntity {
         this.inProcessFaceVerify = teExam.getInProcessFaceVerify();
         this.inProcessFaceStrangerIgnore = teExam.getInProcessFaceStrangerIgnore();
         this.inProcessLivenessVerify = teExam.getInProcessLivenessVerify();
+        this.inProcessRealnessVerify = teExam.getInProcessRealnessVerify();
         if (Objects.nonNull(teExam.getInProcessLivenessFixedRange())) {
             String[] longs = teExam.getInProcessLivenessFixedRange().trim().replaceAll(" ", "").split(",");
             List inProcessLivenessFixedRange = new ArrayList();
@@ -248,6 +257,22 @@ public class TEExamDto extends BaseEntity {
         this.invigilateVerify = teExam.getInvigilateVerify();
     }
 
+    public InvigilateMonitorStatusEnum getMonitorStatus() {
+        return monitorStatus;
+    }
+
+    public void setMonitorStatus(InvigilateMonitorStatusEnum monitorStatus) {
+        this.monitorStatus = monitorStatus;
+    }
+
+    public Integer getInProcessRealnessVerify() {
+        return inProcessRealnessVerify;
+    }
+
+    public void setInProcessRealnessVerify(Integer inProcessRealnessVerify) {
+        this.inProcessRealnessVerify = inProcessRealnessVerify;
+    }
+
     public InvigilateVerifyEnum getInvigilateVerify() {
         return invigilateVerify;
     }

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

@@ -1,5 +1,6 @@
 package com.qmth.themis.business.dto.response;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
@@ -98,6 +99,9 @@ public class TEExamActivityDto implements Serializable {
     @ApiModelProperty(name = "考试过程中是否启用活体检测 ,0:不启用,1:启用")
     private Integer inProcessLivenessVerify;//考试过程中是否启用活体检测 ,0:不启用,1:启用
 
+    @ApiModelProperty(value = "考试过程中是否启用真实性检测,0:不启用,1:启用")
+    private Integer inProcessRealnessVerify;
+
     @ApiModelProperty(name = "考试过程中活体检测间隔时间")
     private String inProcessLivenessFixedRangeStr;
 
@@ -196,6 +200,7 @@ public class TEExamActivityDto implements Serializable {
         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();
@@ -217,6 +222,14 @@ public class TEExamActivityDto implements Serializable {
         this.examId = ec.getId();
     }
 
+    public Integer getInProcessRealnessVerify() {
+        return inProcessRealnessVerify;
+    }
+
+    public void setInProcessRealnessVerify(Integer inProcessRealnessVerify) {
+        this.inProcessRealnessVerify = inProcessRealnessVerify;
+    }
+
     public Long getExamId() {
         return examId;
     }

+ 11 - 0
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamUnFinishDto.java

@@ -98,6 +98,9 @@ public class TEExamUnFinishDto implements Serializable {
     @ApiModelProperty(name = "考试过程中是否启用活体检测 ,0:不启用,1:启用")
     private Integer inProcessLivenessVerify;//考试过程中是否启用活体检测 ,0:不启用,1:启用
 
+    @ApiModelProperty(value = "考试过程中是否启用真实性检测,0:不启用,1:启用")
+    private Integer inProcessRealnessVerify;
+
     @ApiModelProperty(name = "考试过程中活体检测间隔时间")
     private String inProcessLivenessFixedRange;//考试过程中活体检测间隔时间
 
@@ -122,6 +125,14 @@ public class TEExamUnFinishDto implements Serializable {
     @ApiModelProperty(name = "是否允许使用移动端拍照答题,0:不开启,1:开启")
     private Integer mobilePhotoUpload;//是否允许使用移动端拍照答题,0:不开启,1:开启
 
+    public Integer getInProcessRealnessVerify() {
+        return inProcessRealnessVerify;
+    }
+
+    public void setInProcessRealnessVerify(Integer inProcessRealnessVerify) {
+        this.inProcessRealnessVerify = inProcessRealnessVerify;
+    }
+
     public Integer getMobilePhotoUpload() {
         return mobilePhotoUpload;
     }

+ 13 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TEExam.java

@@ -196,6 +196,10 @@ public class TEExam extends BaseEntity {
     @TableField("monitor_status")
     private InvigilateMonitorStatusEnum monitorStatus;
 
+    @ApiModelProperty(value = "考试过程中是否启用真实性检测,0:不启用,1:启用")
+    @TableField(value = "in_process_realness_verify")
+    private Integer inProcessRealnessVerify;
+
     public TEExam() {
 
     }
@@ -231,6 +235,7 @@ public class TEExam extends BaseEntity {
         this.inProcessFaceVerify = teExamDto.getInProcessFaceVerify();
         this.inProcessFaceStrangerIgnore = teExamDto.getInProcessFaceStrangerIgnore();
         this.inProcessLivenessVerify = teExamDto.getInProcessLivenessVerify();
+        this.inProcessRealnessVerify = teExamDto.getInProcessRealnessVerify();
         if (Objects.nonNull(teExamDto.getInProcessLivenessFixedRange()) && !Objects.equals(teExamDto.getInProcessLivenessFixedRange(), "")) {
             this.inProcessLivenessFixedRange = teExamDto.getInProcessLivenessFixedRange().toString().trim().replace("[", "").replace("]", "").replaceAll(" ", "");
             if (Objects.equals(this.inProcessLivenessFixedRange.trim().replaceAll(" ", ""), "")) {
@@ -262,6 +267,14 @@ public class TEExam extends BaseEntity {
         this.invigilateVerify = teExamDto.getInvigilateVerify();
     }
 
+    public Integer getInProcessRealnessVerify() {
+        return inProcessRealnessVerify;
+    }
+
+    public void setInProcessRealnessVerify(Integer inProcessRealnessVerify) {
+        this.inProcessRealnessVerify = inProcessRealnessVerify;
+    }
+
     public InvigilateMonitorStatusEnum getMonitorStatus() {
         return monitorStatus;
     }

+ 12 - 2
themis-business/src/main/java/com/qmth/themis/business/entity/TOeExamRecord.java

@@ -214,8 +214,18 @@ public class TOeExamRecord implements Serializable {
     @ApiModelProperty(value = "是否有标答,0:无,1:有")
     @TableField(value = "has_answer_file")
     private Integer hasAnswerFile;
-    
-    
+
+    @ApiModelProperty(value = "当前真实性检测状态")
+    @TableField(value = "in_process_realness_verify_status")
+    private Integer inProcessRealnessVerifyStatus;
+
+    public Integer getInProcessRealnessVerifyStatus() {
+        return inProcessRealnessVerifyStatus;
+    }
+
+    public void setInProcessRealnessVerifyStatus(Integer inProcessRealnessVerifyStatus) {
+        this.inProcessRealnessVerifyStatus = inProcessRealnessVerifyStatus;
+    }
 
     public ScoreStatusEnum getScoreStatus() {
         return scoreStatus;

+ 2 - 0
themis-business/src/main/java/com/qmth/themis/business/enums/ExamRecordFieldEnum.java

@@ -75,6 +75,8 @@ public enum ExamRecordFieldEnum {
 
     in_process_liveness_verify_status("inProcessLivenessVerifyStatus"),
 
+    in_process_realness_verify_status("inProcessRealnessVerifyStatus"),
+
     in_process_liveness_verify_count("inProcessLivenessVerifyCount"),
 
     monitor_key("monitorKey"),

+ 1 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -100,6 +100,7 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
             activityMap.put("courseCode", teExamUnFinishDto.getCourseCode());
             activityMap.put("examStudentId", teExamUnFinishDto.getExamStudentId());
             activityMap.put("inProcessLivenessVerify", teExamUnFinishDto.getInProcessLivenessVerify());
+            activityMap.put("inProcessRealnessVerify", teExamUnFinishDto.getInProcessRealnessVerify());
             activityMap.put("inProcessFaceStrangerIgnore", teExamUnFinishDto.getInProcessFaceStrangerIgnore());
             activityMap.put("inProcessFaceVerify", teExamUnFinishDto.getInProcessFaceVerify());
             activityMap.put("courseName", teExamUnFinishDto.getCourseName());

+ 3 - 0
themis-business/src/main/resources/db/init.sql

@@ -935,6 +935,7 @@ CREATE TABLE `t_e_exam` (
   `mobile_photo_upload` tinyint DEFAULT NULL COMMENT '是否允许使用移动端拍照答题,0:不开启,1:开启',
   `invigilate_verify` varchar(30) DEFAULT NULL COMMENT '监考人工审核,now:实时审核,later:事后审核',
   `monitor_status` varchar(30) DEFAULT 'NOT_START' COMMENT '监考状态,NOT_START:未开始,START:监考中,FINISHED:已结束',
+  `in_process_realness_verify` tinyint DEFAULT NULL COMMENT '考试过程中是否启用真实性检测,0:不启用,1:启用',
   PRIMARY KEY (`id`),
   UNIQUE KEY `t_e_exam_orgId_code_Idx` (`org_id`,`code`),
   UNIQUE KEY `t_e_exam_short_code_Idx` (`short_code`) USING BTREE
@@ -1031,6 +1032,7 @@ CREATE TABLE `t_e_exam_paper` (
   `course_code` varchar(30) DEFAULT NULL COMMENT '科目编码',
   `struct_path` varchar(100) DEFAULT NULL COMMENT '结构文件路径',
   `decrypt_vector` varchar(100) DEFAULT NULL COMMENT '解密向量',
+  `paper_view_path` varchar(100) DEFAULT NULL COMMENT '阅卷用试卷json路径',
   PRIMARY KEY (`id`),
   UNIQUE KEY `t_e_exam_paper_examId_code_Idx` (`exam_id`,`code`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考试试卷';
@@ -1416,6 +1418,7 @@ CREATE TABLE `t_oe_exam_record` (
   `max_duration_seconds` int DEFAULT NULL COMMENT '最大考试时长',
   `force_finish` tinyint DEFAULT NULL COMMENT '是否在结束时间集中强制收卷,0:不强制,1:强制',
   `has_answer_file` tinyint DEFAULT NULL COMMENT '是否有标答,0:否,1:是',
+  `in_process_realness_verify_status` tinyint DEFAULT NULL COMMENT '当前真实性检测状态',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考试记录';
 

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

@@ -136,6 +136,7 @@
             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,

+ 1 - 0
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -36,6 +36,7 @@
 		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 inProcessLivenessFixedRange,
 		tee.in_process_liveness_judge_policy as inProcessLivenessJudgePolicy,
 		tee.camera_photo_upload as cameraPhotoUpload,