Browse Source

保存活检结果的第一步逻辑特殊处理

lideyin 5 years ago
parent
commit
e0b0124cec

+ 8 - 2
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/impl/FaceBiopsyServiceImpl.java

@@ -322,7 +322,7 @@ public class FaceBiopsyServiceImpl implements FaceBiopsyService {
             }
 
             //整个检测步骤中只要有一次失败,则认为整个活检失败
-            if (null!= stepInfo.getResult() && !stepInfo.getResult()) {
+            if (null != stepInfo.getResult() && !stepInfo.getResult()) {
                 return stepInfo.getErrorMsg();
             }
         }
@@ -344,6 +344,13 @@ public class FaceBiopsyServiceImpl implements FaceBiopsyService {
         for (FaceBiopsyStepInfo stepInfo : verifySteps) {
             switch (stepInfo.getAction()) {
                 case FACE_COMPARE:
+                    //如果有陌生人脸或晃出摄像头或无人脸,直接结束考试
+                    if ((null != stepInfo.getStranger() && stepInfo.getStranger()) ||
+                            (null != stepInfo.getWaggleOutCamera() && stepInfo.getWaggleOutCamera()) ||
+                            (null != stepInfo.getHasFace() && !stepInfo.getHasFace())) {
+                        return true;
+                    }
+
                     //如果第一步检测部分失败(照片非本人或检测中多人脸),需要结束考试
                     Map faceCompareResult = JsonUtil.fromJson(stepInfo.getResultJson(), Map.class);
                     if (null != faceCompareResult) {
@@ -369,7 +376,6 @@ public class FaceBiopsyServiceImpl implements FaceBiopsyService {
                     break;
                 case HAPPY:
                 case SERIOUS:
-                    //如果此前步骤已判断为需要结束考试则不作任何处理
                     //如果有陌生人脸或晃出摄像头或无人脸,直接结束考试
                     if ((null != stepInfo.getStranger() && stepInfo.getStranger()) ||
                             (null != stepInfo.getWaggleOutCamera() && stepInfo.getWaggleOutCamera()) ||