xiatian 4 år sedan
förälder
incheckning
255e2a5680

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

@@ -5,6 +5,7 @@ import java.util.Date;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.FinishTypeEnum;
 import com.qmth.themis.business.enums.FinishTypeEnum;
+import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.RedisUtil;
 
 
 /**
 /**
@@ -88,5 +89,20 @@ public class ExamRecordCacheUtil {
 	public static Long getLastBreakId(Long recordId) {
 	public static Long getLastBreakId(Long recordId) {
 		return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "lastBreakId");
 		return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "lastBreakId");
 	}
 	}
+	
+	public static VerifyExceptionEnum getEntryAuthenticationResult(Long recordId) {
+		return (VerifyExceptionEnum) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "entryAuthenticationResult");
+	}
 
 
+	public static void setEntryAuthenticationResult(Long recordId, VerifyExceptionEnum entryAuthenticationResult) {
+		redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), "entryAuthenticationResult", entryAuthenticationResult);
+	}
+	
+	public static Long getEntryAuthenticationId(Long recordId) {
+		return (Long) redisUtil.get(RedisKeyHelper.examRecordCacheKey(recordId), "entryAuthenticationId");
+	}
+
+	public static void setEntryAuthenticationId(Long recordId, Long entryAuthenticationId) {
+		redisUtil.set(RedisKeyHelper.examRecordCacheKey(recordId), "entryAuthenticationId", entryAuthenticationId);
+	}
 }
 }

+ 4 - 3
themis-business/src/main/java/com/qmth/themis/business/entity/TOeExamBreakHistory.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.qmth.themis.business.enums.BreakReasonEnum;
 import com.qmth.themis.business.enums.BreakReasonEnum;
 import com.qmth.themis.business.enums.EntryAuthenticationPolicyEnum;
 import com.qmth.themis.business.enums.EntryAuthenticationPolicyEnum;
+import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.contanst.Constants;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
@@ -52,7 +53,7 @@ public class TOeExamBreakHistory implements Serializable {
 
 
     @ApiModelProperty(value = "恢复开考身份验证结果")
     @ApiModelProperty(value = "恢复开考身份验证结果")
     @TableField(value = "entry_authentication_result")
     @TableField(value = "entry_authentication_result")
-    private EntryAuthenticationPolicyEnum entryAuthenticationResult;
+    private VerifyExceptionEnum entryAuthenticationResult;
 
 
     @ApiModelProperty(value = "恢复开考身份验证记录ID")
     @ApiModelProperty(value = "恢复开考身份验证记录ID")
     @TableField(value = "entry_authentication_id")
     @TableField(value = "entry_authentication_id")
@@ -130,11 +131,11 @@ public class TOeExamBreakHistory implements Serializable {
         this.startTime = startTime;
         this.startTime = startTime;
     }
     }
 
 
-    public EntryAuthenticationPolicyEnum getEntryAuthenticationResult() {
+    public VerifyExceptionEnum getEntryAuthenticationResult() {
         return entryAuthenticationResult;
         return entryAuthenticationResult;
     }
     }
 
 
-    public void setEntryAuthenticationResult(EntryAuthenticationPolicyEnum entryAuthenticationResult) {
+    public void setEntryAuthenticationResult(VerifyExceptionEnum entryAuthenticationResult) {
         this.entryAuthenticationResult = entryAuthenticationResult;
         this.entryAuthenticationResult = entryAuthenticationResult;
     }
     }
 
 

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

@@ -170,7 +170,7 @@ public class TOeExamRecord implements Serializable {
 
 
     @ApiModelProperty(value = "开考身份验证结果")
     @ApiModelProperty(value = "开考身份验证结果")
     @TableField(value = "entry_authentication_result")
     @TableField(value = "entry_authentication_result")
-    private EntryAuthenticationPolicyEnum entryAuthenticationResult;
+    private VerifyExceptionEnum entryAuthenticationResult;
 
 
     @ApiModelProperty(value = "开考身份验证记录ID")
     @ApiModelProperty(value = "开考身份验证记录ID")
     @TableField(value = "entry_authentication_id")
     @TableField(value = "entry_authentication_id")
@@ -536,11 +536,11 @@ public class TOeExamRecord implements Serializable {
         this.lastBreakId = lastBreakId;
         this.lastBreakId = lastBreakId;
     }
     }
 
 
-    public EntryAuthenticationPolicyEnum getEntryAuthenticationResult() {
+    public VerifyExceptionEnum getEntryAuthenticationResult() {
         return entryAuthenticationResult;
         return entryAuthenticationResult;
     }
     }
 
 
-    public void setEntryAuthenticationResult(EntryAuthenticationPolicyEnum entryAuthenticationResult) {
+    public void setEntryAuthenticationResult(VerifyExceptionEnum entryAuthenticationResult) {
         this.entryAuthenticationResult = entryAuthenticationResult;
         this.entryAuthenticationResult = entryAuthenticationResult;
     }
     }
 
 

+ 9 - 0
themis-business/src/main/java/com/qmth/themis/business/service/TOeExamRecordService.java

@@ -2,6 +2,7 @@ package com.qmth.themis.business.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.themis.business.entity.TOeExamRecord;
 import com.qmth.themis.business.entity.TOeExamRecord;
+import com.qmth.themis.business.enums.VerifyExceptionEnum;
 
 
 import java.util.Map;
 import java.util.Map;
 
 
@@ -38,4 +39,12 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
 	 */
 	 */
 	public void saveDataByCache(Long recordId);
 	public void saveDataByCache(Long recordId);
 
 
+	/**首次开考验证结果保存
+	 * @param recordId
+	 * @param entryAuthenticationId
+	 * @param entryAuthenticationResult
+	 */
+	void saveAuthenticationResultOnStart(Long recordId, Long entryAuthenticationId,
+			VerifyExceptionEnum entryAuthenticationResult);
+
 }
 }

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

@@ -34,6 +34,7 @@ import com.qmth.themis.business.entity.TOeExamAnswer;
 import com.qmth.themis.business.entity.TOeExamRecord;
 import com.qmth.themis.business.entity.TOeExamRecord;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.ObjectiveScorePolicyEnum;
 import com.qmth.themis.business.enums.ObjectiveScorePolicyEnum;
+import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.service.TEExamPaperService;
 import com.qmth.themis.business.service.TEExamPaperService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.service.TOeExamAnswerService;
 import com.qmth.themis.business.service.TOeExamAnswerService;
@@ -330,4 +331,15 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
         return UUID.randomUUID().toString().replaceAll("-", "");
         return UUID.randomUUID().toString().replaceAll("-", "");
     }
     }
 	
 	
+	/**首次开考验证结果保存
+	 * @param recordId
+	 * @param entryAuthenticationId
+	 * @param entryAuthenticationResult
+	 */
+	@Override
+	public void saveAuthenticationResultOnStart(Long recordId, Long entryAuthenticationId, VerifyExceptionEnum entryAuthenticationResult) {
+		ExamRecordCacheUtil.setEntryAuthenticationId(recordId, entryAuthenticationId);
+		ExamRecordCacheUtil.setEntryAuthenticationResult(recordId, entryAuthenticationResult);
+	}
+	
 }
 }

+ 6 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeFaceVerifyHistoryServiceImpl.java

@@ -16,6 +16,7 @@ import com.qmth.themis.business.entity.TOeFaceVerifyHistory;
 import com.qmth.themis.business.enums.ExamTypeEnum;
 import com.qmth.themis.business.enums.ExamTypeEnum;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.service.TOeExamBreakHistoryService;
 import com.qmth.themis.business.service.TOeExamBreakHistoryService;
+import com.qmth.themis.business.service.TOeExamRecordService;
 import com.qmth.themis.business.service.TOeFaceVerifyHistoryService;
 import com.qmth.themis.business.service.TOeFaceVerifyHistoryService;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.contanst.Constants;
@@ -37,6 +38,9 @@ public class TOeFaceVerifyHistoryServiceImpl extends ServiceImpl<TOeFaceVerifyHi
 	@Resource
 	@Resource
 	TOeExamBreakHistoryService examBreakHistoryService;
 	TOeExamBreakHistoryService examBreakHistoryService;
 	
 	
+	@Resource
+	TOeExamRecordService examRecordService;
+	
 	@Override
 	@Override
 	public FaceVerifyBean verify(Long recordId, String type, String photoUrl, Integer faceCount, Double similarity,
 	public FaceVerifyBean verify(Long recordId, String type, String photoUrl, Integer faceCount, Double similarity,
 			Double realness, Long time, String exception) {
 			Double realness, Long time, String exception) {
@@ -56,6 +60,8 @@ public class TOeFaceVerifyHistoryServiceImpl extends ServiceImpl<TOeFaceVerifyHi
 		ret.setUpdateTime(new Date().getTime());
 		ret.setUpdateTime(new Date().getTime());
 		if(ExamTypeEnum.RECOVER.equals(cache.getType())) {
 		if(ExamTypeEnum.RECOVER.equals(cache.getType())) {
 			examBreakHistoryService.saveAuthenticationResult(recordId, cache.getId(), cache.getException());
 			examBreakHistoryService.saveAuthenticationResult(recordId, cache.getId(), cache.getException());
+		}else if(ExamTypeEnum.FIRST.equals(cache.getType())) {
+			examRecordService.saveAuthenticationResultOnStart(recordId, cache.getId(), cache.getException());
 		}
 		}
 		return ret;
 		return ret;
 	}
 	}

+ 5 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeLivenessVerifyHistoryServiceImpl.java

@@ -16,6 +16,7 @@ import com.qmth.themis.business.entity.TOeLivenessVerifyHistory;
 import com.qmth.themis.business.enums.LivenessTypeEnum;
 import com.qmth.themis.business.enums.LivenessTypeEnum;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.service.TOeExamBreakHistoryService;
 import com.qmth.themis.business.service.TOeExamBreakHistoryService;
+import com.qmth.themis.business.service.TOeExamRecordService;
 import com.qmth.themis.business.service.TOeLivenessVerifyHistoryService;
 import com.qmth.themis.business.service.TOeLivenessVerifyHistoryService;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.contanst.Constants;
@@ -36,6 +37,8 @@ public class TOeLivenessVerifyHistoryServiceImpl extends ServiceImpl<TOeLiveness
 	@Resource
 	@Resource
 	TOeExamBreakHistoryService examBreakHistoryService;
 	TOeExamBreakHistoryService examBreakHistoryService;
 	
 	
+	@Resource
+	TOeExamRecordService examRecordService;
 	
 	
 	@Override
 	@Override
 	public LivenessVerifyBean verify(Long recordId, String type, String actions, Integer retry, Long startTime,
 	public LivenessVerifyBean verify(Long recordId, String type, String actions, Integer retry, Long startTime,
@@ -55,6 +58,8 @@ public class TOeLivenessVerifyHistoryServiceImpl extends ServiceImpl<TOeLiveness
 		ret.setUpdateTime(new Date().getTime());
 		ret.setUpdateTime(new Date().getTime());
 		if(LivenessTypeEnum.RESUME_START.equals(cache.getType())) {
 		if(LivenessTypeEnum.RESUME_START.equals(cache.getType())) {
 			examBreakHistoryService.saveAuthenticationResult(recordId, cache.getId(), cache.getException());
 			examBreakHistoryService.saveAuthenticationResult(recordId, cache.getId(), cache.getException());
+		}else if(LivenessTypeEnum.FIRST_START.equals(cache.getType())) {
+			examRecordService.saveAuthenticationResultOnStart(recordId, cache.getId(), cache.getException());
 		}
 		}
 		return ret;
 		return ret;
 	}
 	}