|
@@ -87,7 +87,7 @@ public class FaceVerifyJobHandler {
|
|
|
// 获取当前学生的底照信息
|
|
|
Long studentId = queues.get(0).getStudentId();
|
|
|
StudentCacheBean studentCache = CacheHelper.getStudent(studentId);
|
|
|
- if (StringUtils.isBlank(studentCache.getFaceToken()) || StringUtils.isBlank(studentCache.getPhotoPath())) {
|
|
|
+ if (StringUtils.isBlank(studentCache.getPhotoPath())) {
|
|
|
throw new IllegalArgumentException("学生底照不存在!studentId is " + studentId);
|
|
|
}
|
|
|
|
|
@@ -114,7 +114,7 @@ public class FaceVerifyJobHandler {
|
|
|
// 将抓拍照图片转成Base64格式
|
|
|
ImageParm capturePhoto = new ImageBase64Parm(CommonUtils.toBase64(FileStorageUtil.realPath(queue.getFileUrl())));
|
|
|
|
|
|
- boolean errFaceNum = false;
|
|
|
+ boolean errFace = false;
|
|
|
|
|
|
try {
|
|
|
if (ExamCaptureQueueStatus.PROCESS_FACE_COMPARE_COMPLETE != queue.getStatus()
|
|
@@ -129,17 +129,21 @@ public class FaceVerifyJobHandler {
|
|
|
faceCompareResult = faceVerifyService.faceCompareByFacePlus(basePhoto, capturePhoto);
|
|
|
}
|
|
|
|
|
|
- // if (!faceCompareResult.needReTry()) {
|
|
|
- // throw new FaceVerifyException(faceCompareResult.getError());
|
|
|
- // }
|
|
|
+ if (!faceCompareResult.isApiNeedRetry()) {
|
|
|
+ queue.setExtMsg(faceCompareResult.getError());
|
|
|
+ this.saveExamCaptureAndDeleteQueue(queue);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
- queue.setIsPass(faceCompareResult.isPass());
|
|
|
+ queue.setIsPass(faceCompareResult.isFacePass());
|
|
|
queue.setFaceCompareResult(faceCompareResult.getJsonResult());
|
|
|
queue.setStatus(ExamCaptureQueueStatus.PROCESS_FACE_COMPARE_COMPLETE);
|
|
|
queue.setIsStranger(false);
|
|
|
|
|
|
if (faceCompareResult.getFaceNum() == 0) {
|
|
|
- errFaceNum = true;
|
|
|
+ if (!useBaiduApi) {
|
|
|
+ errFace = true;
|
|
|
+ }
|
|
|
} else if (faceCompareResult.getFaceNum() > 1) {
|
|
|
// 是否启用陌生人检测
|
|
|
ExamRecordData examRecordDataCache = examRecordDataService.getExamRecordDataCache(examRecordDataId);
|
|
@@ -152,7 +156,7 @@ public class FaceVerifyJobHandler {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (!faceCompareResult.isPass()) {
|
|
|
+ if (!faceCompareResult.isFacePass()) {
|
|
|
queue.setExtMsg(faceCompareResult.getError());
|
|
|
}
|
|
|
|
|
@@ -170,7 +174,7 @@ public class FaceVerifyJobHandler {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- if (errFaceNum) {
|
|
|
+ if (errFace) {
|
|
|
// 没有检测到正常人脸,直接保存人脸检测最终结果并删除该队列记录
|
|
|
this.saveExamCaptureAndDeleteQueue(queue);
|
|
|
continue;
|
|
@@ -181,11 +185,13 @@ public class FaceVerifyJobHandler {
|
|
|
FaceResult faceLivenessResult = faceVerifyService.faceVerifyByBaidu(capturePhoto);
|
|
|
queue.setFacelivenessResult(faceLivenessResult.getJsonResult());
|
|
|
|
|
|
- // if (!faceLivenessResult.needReTry()) {
|
|
|
- // throw new FaceVerifyException(faceLivenessResult.getError());
|
|
|
- // }
|
|
|
+ if (!faceLivenessResult.isApiNeedRetry()) {
|
|
|
+ queue.setExtMsg(faceLivenessResult.getError());
|
|
|
+ this.saveExamCaptureAndDeleteQueue(queue);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
- if (!faceLivenessResult.isPass()) {
|
|
|
+ if (!faceLivenessResult.isFacePass()) {
|
|
|
queue.setExtMsg(faceLivenessResult.getError());
|
|
|
}
|
|
|
} catch (Exception e) {
|