Эх сурвалжийг харах

Merge remote-tracking branch 'origin/dev' into dev

wangliang 4 жил өмнө
parent
commit
2543c6e547

+ 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.enums.ExamRecordStatusEnum;
 import com.qmth.themis.business.enums.FinishTypeEnum;
+import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.business.util.RedisUtil;
 
 /**
@@ -88,5 +89,20 @@ public class ExamRecordCacheUtil {
 	public static Long getLastBreakId(Long recordId) {
 		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.qmth.themis.business.enums.BreakReasonEnum;
 import com.qmth.themis.business.enums.EntryAuthenticationPolicyEnum;
+import com.qmth.themis.business.enums.VerifyExceptionEnum;
 import com.qmth.themis.common.contanst.Constants;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -52,7 +53,7 @@ public class TOeExamBreakHistory implements Serializable {
 
     @ApiModelProperty(value = "恢复开考身份验证结果")
     @TableField(value = "entry_authentication_result")
-    private EntryAuthenticationPolicyEnum entryAuthenticationResult;
+    private VerifyExceptionEnum entryAuthenticationResult;
 
     @ApiModelProperty(value = "恢复开考身份验证记录ID")
     @TableField(value = "entry_authentication_id")
@@ -130,11 +131,11 @@ public class TOeExamBreakHistory implements Serializable {
         this.startTime = startTime;
     }
 
-    public EntryAuthenticationPolicyEnum getEntryAuthenticationResult() {
+    public VerifyExceptionEnum getEntryAuthenticationResult() {
         return entryAuthenticationResult;
     }
 
-    public void setEntryAuthenticationResult(EntryAuthenticationPolicyEnum entryAuthenticationResult) {
+    public void setEntryAuthenticationResult(VerifyExceptionEnum 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 = "开考身份验证结果")
     @TableField(value = "entry_authentication_result")
-    private EntryAuthenticationPolicyEnum entryAuthenticationResult;
+    private VerifyExceptionEnum entryAuthenticationResult;
 
     @ApiModelProperty(value = "开考身份验证记录ID")
     @TableField(value = "entry_authentication_id")
@@ -536,11 +536,11 @@ public class TOeExamRecord implements Serializable {
         this.lastBreakId = lastBreakId;
     }
 
-    public EntryAuthenticationPolicyEnum getEntryAuthenticationResult() {
+    public VerifyExceptionEnum getEntryAuthenticationResult() {
         return entryAuthenticationResult;
     }
 
-    public void setEntryAuthenticationResult(EntryAuthenticationPolicyEnum entryAuthenticationResult) {
+    public void setEntryAuthenticationResult(VerifyExceptionEnum 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.qmth.themis.business.entity.TOeExamRecord;
+import com.qmth.themis.business.enums.VerifyExceptionEnum;
 
 import java.util.Map;
 
@@ -38,4 +39,12 @@ public interface TOeExamRecordService extends IService<TOeExamRecord> {
 	 */
 	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.enums.ExamRecordStatusEnum;
 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.TEExamService;
 import com.qmth.themis.business.service.TOeExamAnswerService;
@@ -330,4 +331,15 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
         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.VerifyExceptionEnum;
 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.util.RedisUtil;
 import com.qmth.themis.common.contanst.Constants;
@@ -37,6 +38,9 @@ public class TOeFaceVerifyHistoryServiceImpl extends ServiceImpl<TOeFaceVerifyHi
 	@Resource
 	TOeExamBreakHistoryService examBreakHistoryService;
 	
+	@Resource
+	TOeExamRecordService examRecordService;
+	
 	@Override
 	public FaceVerifyBean verify(Long recordId, String type, String photoUrl, Integer faceCount, Double similarity,
 			Double realness, Long time, String exception) {
@@ -56,6 +60,8 @@ public class TOeFaceVerifyHistoryServiceImpl extends ServiceImpl<TOeFaceVerifyHi
 		ret.setUpdateTime(new Date().getTime());
 		if(ExamTypeEnum.RECOVER.equals(cache.getType())) {
 			examBreakHistoryService.saveAuthenticationResult(recordId, cache.getId(), cache.getException());
+		}else if(ExamTypeEnum.FIRST.equals(cache.getType())) {
+			examRecordService.saveAuthenticationResultOnStart(recordId, cache.getId(), cache.getException());
 		}
 		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.VerifyExceptionEnum;
 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.util.RedisUtil;
 import com.qmth.themis.common.contanst.Constants;
@@ -36,6 +37,8 @@ public class TOeLivenessVerifyHistoryServiceImpl extends ServiceImpl<TOeLiveness
 	@Resource
 	TOeExamBreakHistoryService examBreakHistoryService;
 	
+	@Resource
+	TOeExamRecordService examRecordService;
 	
 	@Override
 	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());
 		if(LivenessTypeEnum.RESUME_START.equals(cache.getType())) {
 			examBreakHistoryService.saveAuthenticationResult(recordId, cache.getId(), cache.getException());
+		}else if(LivenessTypeEnum.FIRST_START.equals(cache.getType())) {
+			examRecordService.saveAuthenticationResultOnStart(recordId, cache.getId(), cache.getException());
 		}
 		return ret;
 	}