lideyin 5 vuotta sitten
vanhempi
commit
4a30deab2f

+ 18 - 6
examcloud-core-oe-face-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/face/service/bean/CompareFaceSyncInfo.java

@@ -5,26 +5,31 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 public class CompareFaceSyncInfo implements JsonSerializable{
 
 	/**
-	 * 
+	 *
 	 */
 	private static final long serialVersionUID = 802462624028077528L;
 
-	
+
 	/**
 	 * 人脸比对是否通过
 	 */
 	private Boolean isPass;
-	
+
 	/**
 	 * 学生ID
 	 */
 	private Long studentId;
-	
+
 	/**
 	 * 是否有陌生人
 	 */
 	private Boolean isStranger;
-	
+
+	/**
+	 * 是否存在系统错误
+	 */
+	private boolean existsSystemError;
+
 	/**
 	 * 错误信息
 	 */
@@ -61,5 +66,12 @@ public class CompareFaceSyncInfo implements JsonSerializable{
 	public void setIsStranger(Boolean isStranger) {
 		this.isStranger = isStranger;
 	}
-	
+
+	public Boolean getExistsSystemError() {
+		return existsSystemError;
+	}
+
+	public void setExistsSystemError(boolean existsSystemError) {
+		this.existsSystemError = existsSystemError;
+	}
 }

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

@@ -425,13 +425,19 @@ public class ExamCaptureServiceImpl implements ExamCaptureService {
                     compareWithTokenAndImageUrl(baseFaceToken,
                             fileUrl, fileUrl.replace(main, backup));
             facePPResult = jsonHttpResponseHolder.getRespBody();
-        } catch (StatusException e) {
+        } catch (Exception e) {
             compareFaceSyncInfo.setIsPass(false);
-            compareFaceSyncInfo.setErrorMsg(e.getDesc());
+            compareFaceSyncInfo.setExistsSystemError(true);
+            compareFaceSyncInfo.setErrorMsg("系统异常");
             return compareFaceSyncInfo;
         }
         if (facePPResult.containsKey(Constants.ERROR_MSG)) {
             compareFaceSyncInfo.setIsPass(false);
+            String errMsg = facePPResult.getString(Constants.ERROR_MSG);
+            if (errMsg.contains(Constants.FACE_COMPARE_CONCURRENCY_LIMIT_EXCEEDED) ||
+                    errMsg.contains(Constants.FACE_COMPARE_AUTHORIZATION_ERROR)) {
+                compareFaceSyncInfo.setExistsSystemError(true);
+            }
             compareFaceSyncInfo.setErrorMsg(facePPResult.toString());
             return compareFaceSyncInfo;
         } else {