lideyin пре 5 година
родитељ
комит
4dd0abf219

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

@@ -212,20 +212,25 @@ public class FaceBiopsyServiceImpl implements FaceBiopsyService {
             return generateInFreezeTimeFaceBiopsyStartMinute(examRecordDataId);
         }
 
-        //第一次活体检测完成且成功,再次调用时根据是否开启追加活检判断相关逻辑
-        if (firstFaceBiopsyItem.getResult()) {
-            //如果未开启冻结时间外人脸活体检测,则无需求下次活检,故直接返回null
-            if (!isAddFaceVerifyOutFreezeTime(examRecordDataId)) {
-                return null;
+        //如果活检只进行了一次
+        if (faceBiopsy.getVerifiedTimes() == 1) {
+            //如果活检只进行了一次,活体检测完成且成功,再次调用时根据是否开启追加活检判断相关逻辑
+            if (firstFaceBiopsyItem.getResult()) {
+                //如果未开启冻结时间外人脸活体检测,则无需求下次活检,故直接返回null
+                if (!isAddFaceVerifyOutFreezeTime(examRecordDataId)) {
+                    return null;
+                }
+
+                //如果开启冻结时间外人脸活体检测,则直接返回冻结时间外的活检开始时间
+                return generateOutFreezeTimeFaceBiopsyStartMinute(examRecordDataId);
             }
 
-            //如果开启冻结时间外人脸活体检测,则直接返回冻结时间外的活检开始时间
-            return generateOutFreezeTimeFaceBiopsyStartMinute(examRecordDataId);
+            //如果活检只进行了一次,活体检测完成且失败,再次调用时则使用活检内计算方式
+            return generateInFreezeTimeFaceBiopsyStartMinute(examRecordDataId);
         }
 
-        //第一次活检完成且失败,那么第二次调用或者第N(N>=2)次调用且第二次活检未完成,采用活检内计算方式
-        if (faceBiopsy.getVerifiedTimes() == 1 ||
-                (faceBiopsy.getVerifiedTimes() == 2 && !sortedFaceBiopsyItems.get(1).getCompleted())) {
+        //第N(N>=2)次调用且第二次活检未完成,采用活检内计算方式
+        if ((faceBiopsy.getVerifiedTimes() == 2 && !sortedFaceBiopsyItems.get(1).getCompleted())) {
             return generateInFreezeTimeFaceBiopsyStartMinute(examRecordDataId);
         }