Răsfoiți Sursa

update FaceResult

deason 2 ani în urmă
părinte
comite
e367b53e68

+ 8 - 8
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/model/FaceResult.java

@@ -10,14 +10,14 @@ public class FaceResult implements Serializable {
     private static final long serialVersionUID = -6981807543872661368L;
 
     /**
-     * 是否通过
+     * 接口是否请求成功
      */
-    private boolean pass;
+    private boolean apiSuccess;
 
     /**
-     * 接口是否并发超限
+     * 人脸是否通过
      */
-    private boolean apiLimit;
+    private boolean pass;
 
     /**
      * 分值
@@ -54,12 +54,12 @@ public class FaceResult implements Serializable {
         this.pass = pass;
     }
 
-    public boolean isApiLimit() {
-        return apiLimit;
+    public boolean isApiSuccess() {
+        return apiSuccess;
     }
 
-    public void setApiLimit(boolean apiLimit) {
-        this.apiLimit = apiLimit;
+    public void setApiSuccess(boolean apiSuccess) {
+        this.apiSuccess = apiSuccess;
     }
 
     public double getScore() {

+ 8 - 6
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/model/baidu/BaiduApiHelper.java

@@ -133,18 +133,19 @@ public class BaiduApiHelper {
 
     private static FaceResult parseFaceDetectResult(BaiduResponse response) {
         FaceResult result = new FaceResult();
+        result.setApiSuccess(true);
         result.setPass(false);
-        result.setApiLimit(false);
         result.setScore(0d);
         result.setFaceNum(0);
         result.setJsonResult(new JsonHelper().style(Include.NON_NULL).toJson(response));
 
         if (response.getError_code() != 0) {
+            result.setApiSuccess(false);
             result.setError(response.getError_code() + " - " + response.getError_msg());
 
-            // 请求并发超限(约10个/秒)
+            // 请求并发超限(约10个/秒,可按需调整)
             if (response.getError_code() == 18) {
-                result.setApiLimit(true);
+                // log.warn("baidu_api_limit...");
             }
             return result;
         }
@@ -191,18 +192,19 @@ public class BaiduApiHelper {
         }
 
         FaceResult result = new FaceResult();
+        result.setApiSuccess(true);
         result.setPass(false);
-        result.setApiLimit(false);
         result.setScore(0d);
         result.setFaceNum(0);
         result.setJsonResult(new JsonHelper().style(Include.NON_NULL).toJson(response));
 
         if (response.getError_code() != 0) {
+            result.setApiSuccess(false);
             result.setError(response.getError_code() + " - " + response.getError_msg());
 
-            // 请求并发超限(约10个/秒)
+            // 请求并发超限(约10个/秒,可按需调整)
             if (response.getError_code() == 18) {
-                result.setApiLimit(true);
+                // log.warn("baidu_api_limit...");
             }
             return result;
         }

+ 12 - 9
examcloud-starters/examcloud-face-verify-starter/src/main/java/cn/com/qmth/examcloud/starters/face/verify/model/faceplus/FacePlusApiHelper.java

@@ -35,18 +35,19 @@ public class FacePlusApiHelper {
         FacePlusResponse response = callApi(Constants.FACEPP_FACE_DETECT_URL, request);
 
         FaceResult result = new FaceResult();
+        result.setApiSuccess(true);
         result.setPass(false);
-        result.setApiLimit(false);
         result.setScore(0d);
         result.setFaceNum(0);
         result.setJsonResult(new JsonHelper().style(Include.NON_NULL).toJson(response));
 
         if (StringUtils.isNotEmpty(response.getError_message())) {
+            result.setApiSuccess(false);
             result.setError(response.getError_message());
 
-            // 请求并发是否超限(约20个/秒)
+            // 请求并发超限(约20个/秒,可按需调整)
             if ("CONCURRENCY_LIMIT_EXCEEDED".equals(response.getError_message())) {
-                result.setApiLimit(true);
+                // log.warn("facepp_api_limit...");
             }
             return result;
         }
@@ -77,18 +78,19 @@ public class FacePlusApiHelper {
         FacePlusResponse response = callApi(Constants.FACEPP_FACE_COMPARE_URL, request);
 
         FaceResult result = new FaceResult();
+        result.setApiSuccess(true);
         result.setPass(false);
-        result.setApiLimit(false);
         result.setScore(0d);
         result.setFaceNum(0);
         result.setJsonResult(new JsonHelper().style(Include.NON_NULL).toJson(response));
 
         if (StringUtils.isNotEmpty(response.getError_message())) {
+            result.setApiSuccess(false);
             result.setError(response.getError_message());
 
-            // 请求并发是否超限(约20个/秒)
+            // 请求并发超限(约20个/秒,可按需调整)
             if ("CONCURRENCY_LIMIT_EXCEEDED".equals(response.getError_message())) {
-                result.setApiLimit(true);
+                // log.warn("facepp_api_limit...");
             }
             return result;
         }
@@ -119,18 +121,19 @@ public class FacePlusApiHelper {
         try (Response response = HttpClientBuilder.getClient().newCall(request.build()).execute();
              ResponseBody body = response.body();) {
             String bodyStr = body.string();
+            int code = response.code();
 
             long cost = System.currentTimeMillis() - start;
-            // System.out.println("response:" + response.code() + " cost:" + cost + "ms body:" + bodyStr);
+            // System.out.println("response:" + code + " cost:" + cost + "ms body:" + bodyStr);
 
-            if (response.isSuccessful() || response.code() == 401 || response.code() == 403) {
+            if (response.isSuccessful() || code == 400 || code == 401 || code == 403) {
                 FacePlusResponse result = new JsonHelper().parseJson(bodyStr, FacePlusResponse.class);
                 if (result != null) {
                     return result;
                 }
             }
 
-            log.warn("[FACE++] url:{} response:{} cost:{}ms body:{}", requestUrl, response.code(), cost, bodyStr);
+            log.warn("[FACE++] url:{} response:{} cost:{}ms body:{}", requestUrl, code, cost, bodyStr);
         } catch (IOException e) {
             log.error(e.getMessage(), e);
         }