xiatian 4 years ago
parent
commit
24cf143bcb

+ 3 - 3
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamFinishBean.java

@@ -18,7 +18,7 @@ public class ExamFinishBean {
 	private Double objectiveScore;
 
 	@ApiModelProperty("审核结果")
-	private String reviewResult;
+	private Integer reviewResult;
 
 	public Long getFinishTime() {
 		return finishTime;
@@ -44,11 +44,11 @@ public class ExamFinishBean {
 		this.objectiveScore = objectiveScore;
 	}
 
-	public String getReviewResult() {
+	public Integer getReviewResult() {
 		return reviewResult;
 	}
 
-	public void setReviewResult(String reviewResult) {
+	public void setReviewResult(Integer reviewResult) {
 		this.reviewResult = reviewResult;
 	}
 

+ 3 - 3
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamResultBean.java

@@ -21,7 +21,7 @@ public class ExamResultBean {
 	private Integer durationSeconds;
 
 	@ApiModelProperty("审核结果")
-	private String reviewResult;
+	private Integer reviewResult;
 
 	public Long getFinishTime() {
 		return finishTime;
@@ -56,11 +56,11 @@ public class ExamResultBean {
 		this.objectiveScore = objectiveScore;
 	}
 
-	public String getReviewResult() {
+	public Integer getReviewResult() {
 		return reviewResult;
 	}
 
-	public void setReviewResult(String reviewResult) {
+	public void setReviewResult(Integer reviewResult) {
 		this.reviewResult = reviewResult;
 	}
 

+ 16 - 0
themis-business/src/main/java/com/qmth/themis/business/cache/ExamRecordCacheUtil.java

@@ -117,4 +117,20 @@ public class ExamRecordCacheUtil {
 	public static Long getExamActivityId(Long recordId) {
 		return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "examActivityId");
 	}
+	
+	public static void setWarningCount(Long recordId, Integer warningCount) {
+		redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), "warningCount", warningCount);
+	}
+	
+	public static Integer getWarningCount(Long recordId) {
+		return (Integer) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "warningCount");
+	}
+	
+	public static void setBreachStatus(Long recordId, Integer breachStatus) {
+		redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), "breachStatus", breachStatus);
+	}
+	
+	public static Integer getBreachStatus(Long recordId) {
+		return (Integer) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "breachStatus");
+	}
 }

+ 74 - 13
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCacheBean.java

@@ -3,13 +3,36 @@ package com.qmth.themis.business.cache.bean;
 import java.io.Serializable;
 import java.util.Date;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.qmth.themis.business.base.BaseEntity;
-import com.qmth.themis.business.enums.*;
-import io.swagger.annotations.ApiModelProperty;
+import com.qmth.themis.business.enums.EntryAuthenticationPolicyEnum;
+import com.qmth.themis.business.enums.ExamModeEnum;
+import com.qmth.themis.business.enums.InProcessLivenessJudgePolicyEnum;
+import com.qmth.themis.business.enums.InvigilateVerifyEnum;
+import com.qmth.themis.business.enums.ObjectiveScorePolicyEnum;
+import com.qmth.themis.business.enums.RecordSelectStrategyEnum;
+import com.qmth.themis.business.enums.ScoreStatusEnum;
 
-public class ExamCacheBean extends BaseEntity {
+public class ExamCacheBean implements Serializable {
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -1544653057729256077L;
+
+	 //主键
+    private Long id;
+
+    //创建人id
+    private Long createId;
+
+    //创建时间
+    private Date createTime;
+
+    //修改人id
+    private Long updateId;
+
+    //修改时间
+    private Date updateTime;
+	
 	//机构ID
     private Long orgId;
 
@@ -121,20 +144,16 @@ public class ExamCacheBean extends BaseEntity {
     //是否开始监控转录,0:开启,1:不开启
     private Integer monitorRecord;
 
-    @ApiModelProperty(value = "是否允许使用移动端拍照答题,0:不开启,1:开启")
-    @TableField(value = "mobile_photo_upload")
+    //是否允许使用移动端拍照答题,0:不开启,1:开启
     private Integer mobilePhotoUpload;
 
-    @ApiModelProperty(value = "考试过程中活体检测间隔时间")
-    @TableField(value = "in_process_liveness_fixed_range")
+    //考试过程中活体检测间隔时间
     private String inProcessLivenessFixedRange;
 
-    @ApiModelProperty(value = "算分进度")
-    @TableField(value = "progress")
+    //算分进度
     private Double progress;
 
-    @ApiModelProperty(value = "监考人工审核,now:实时审核,later:事后审核")
-    @TableField(value = "invigilate_verify")
+    //监考人工审核,now:实时审核,later:事后审核
     private InvigilateVerifyEnum invigilateVerify;
 
     public InvigilateVerifyEnum getInvigilateVerify() {
@@ -464,4 +483,46 @@ public class ExamCacheBean extends BaseEntity {
     public void setObjectiveScorePolicy(ObjectiveScorePolicyEnum objectiveScorePolicy) {
         this.objectiveScorePolicy = objectiveScorePolicy;
     }
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getCreateId() {
+		return createId;
+	}
+
+	public void setCreateId(Long createId) {
+		this.createId = createId;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Long getUpdateId() {
+		return updateId;
+	}
+
+	public void setUpdateId(Long updateId) {
+		this.updateId = updateId;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+    
+    
 }

+ 4 - 0
themis-business/src/main/java/com/qmth/themis/business/enums/FinishExamResultEnum.java

@@ -14,6 +14,10 @@ public enum FinishExamResultEnum {
 	 * 待审核
 	 */
 	AUDITING("待审核"),
+	/**
+	 * 违纪
+	 */
+	BREACH("违纪"),
 	/**
 	 * 分数显示
 	 */

+ 27 - 10
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -18,6 +18,7 @@ import com.qmth.themis.business.entity.TOeExamRecord;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.FinishExamResultEnum;
 import com.qmth.themis.business.enums.FinishTypeEnum;
+import com.qmth.themis.business.enums.InvigilateVerifyEnum;
 import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.OssUtil;
 import com.qmth.themis.business.util.RedisUtil;
@@ -598,18 +599,35 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         ret.setFinishTime(now.getTime());
         ret.setObjectiveScore(ExamRecordCacheUtil.getObjectiveScore(recordId));
         ExamCacheBean exam = getExamCacheBean(es.getExamId());
-        //TODO
+        //页面结果
         if (exam.getShowObjectiveScore() != null && exam.getShowObjectiveScore().intValue() == 1) {//实时出分
-            if (ret.getObjectiveScore() == null) {
-                ret.setStatus(FinishExamResultEnum.SCORE_CALCULATE);
-            } else {
-                ret.setStatus(FinishExamResultEnum.SCORE_VIEW);
+        	if(InvigilateVerifyEnum.NOW.equals(exam.getInvigilateVerify())) {//实时审核
+        		Integer warningCount=ExamRecordCacheUtil.getWarningCount(recordId);
+        		Integer breachStatus=ExamRecordCacheUtil.getBreachStatus(recordId);
+	            if(warningCount!=null&&warningCount.intValue()>0&&breachStatus==null) {//待审核,有预警,无违纪结果
+	            	ret.setStatus(FinishExamResultEnum.AUDITING);
+	            }
+	            if(breachStatus!=null&&breachStatus.intValue()==0) {//分数状态,违纪结果是false
+	            	if (ret.getObjectiveScore() == null) {
+		                ret.setStatus(FinishExamResultEnum.SCORE_CALCULATE);
+		            } else {
+		                ret.setStatus(FinishExamResultEnum.SCORE_VIEW);
+		            }
+	            }
+	            if(breachStatus!=null&&breachStatus.intValue()==1) {//违纪,违纪结果是true
+	            	ret.setStatus(FinishExamResultEnum.BREACH);
+	            }
+        	}else {
+        		if (ret.getObjectiveScore() == null) {
+	                ret.setStatus(FinishExamResultEnum.SCORE_CALCULATE);
+	            } else {
+	                ret.setStatus(FinishExamResultEnum.SCORE_VIEW);
+	            }
             }
-        } else {
+        } else {//非实时出分
             ret.setStatus(FinishExamResultEnum.NORMAL);
         }
-        // TODO
-        ret.setReviewResult("");
+        ret.setReviewResult(ExamRecordCacheUtil.getBreachStatus(recordId));
         ExamRecordCacheUtil.setFinishTime(recordId, now);
         ExamRecordCacheUtil.setDurationSeconds(recordId, durationSeconds);
         ExamRecordCacheUtil.setFinishType(recordId, FinishTypeEnum.valueOf(type));
@@ -661,8 +679,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
             ret.setObjectiveScore(ExamRecordCacheUtil.getObjectiveScore(recordId));
         }
 
-        //TODO
-        ret.setReviewResult("");
+        ret.setReviewResult(ExamRecordCacheUtil.getBreachStatus(recordId));
         return ret;
     }