From 86c984a4843459aae8ecd7d49420cc97794605ca Mon Sep 17 00:00:00 2001 From: MT <3075067877@qq.com> Date: Mon, 15 Sep 2025 17:37:21 +0800 Subject: [PATCH] update leave api --- .../com/ouxuan/oxface/OXFaceOnlineActivity.java | 4 +- .../oxface/network/LeaveVerificationManager.java | 48 ++++++++++++++++++++-- .../ouxuan/oxface/network/api/PadApiService.java | 12 ++++++ .../ouxuan/oxface/network/utils/NetworkUtils.java | 5 ++- 4 files changed, 63 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java index 8c8eb70..196317b 100644 --- a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java @@ -2612,9 +2612,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi // 离场校验使用人脸识别,不需要暂停摄像头,保持视频流继续运行 - // 调用离场校验管理器执行人脸离场校验 + // 调用离场校验管理器执行人脸离场校验(使用统一接口) if (leaveVerificationManager != null) { - leaveVerificationManager.performFaceLeaveVerification(faceBase64); + leaveVerificationManager.performVerification(LeaveVerificationManager.TYPE_FACE_VERIFICATION, faceBase64, null); } else { LogManager.logError(TAG, "离场校验管理器未初始化"); showToast("离场校验服务未初始化"); diff --git a/app/src/main/java/com/ouxuan/oxface/network/LeaveVerificationManager.java b/app/src/main/java/com/ouxuan/oxface/network/LeaveVerificationManager.java index c9d8891..60e559b 100644 --- a/app/src/main/java/com/ouxuan/oxface/network/LeaveVerificationManager.java +++ b/app/src/main/java/com/ouxuan/oxface/network/LeaveVerificationManager.java @@ -19,6 +19,12 @@ public class LeaveVerificationManager { private static final String TAG = "LeaveVerificationM"; + // 验证类型常量 + public static final int TYPE_VERIFICATION_CODE = 1; // 验证码验证 + public static final int TYPE_FACE_VERIFICATION = 2; // 人脸验证 + public static final int TYPE_SCAN_VERIFICATION = 3; // 扫码验证 + public static final int TYPE_SCANNER_VERIFICATION = 4; // 扫码器验证 + private Context context; private LeaveVerificationListener listener; @@ -62,6 +68,42 @@ public class LeaveVerificationManager { } /** + * 执行离场验证(统一入口) + * @param verificationType 验证类型 + * @param verifyCode 验证码或人脸base64数据 + * @param decryptText 解密文本(仅扫码器验证使用) + */ + public void performVerification(int verificationType, String verifyCode, String decryptText) { + LogManager.logInfo(TAG, "开始执行离场验证,类型: " + verificationType); + + // 根据验证类型执行相应的验证 + switch (verificationType) { + case TYPE_VERIFICATION_CODE: + performCodeLeaveVerification(verifyCode); + break; + case TYPE_FACE_VERIFICATION: + performFaceLeaveVerification(verifyCode); // verifyCode在这里实际上是faceBase64 + break; + case TYPE_SCAN_VERIFICATION: + // TODO: 实现扫码验证逻辑(如果需要) + LogManager.logInfo(TAG, "扫码验证暂未实现"); + if (listener != null) { + listener.onLeaveVerificationError(-1, "扫码验证暂未实现"); + } + break; + case TYPE_SCANNER_VERIFICATION: + performScannerLeaveVerification(decryptText); + break; + default: + LogManager.logError(TAG, "不支持的验证类型: " + verificationType); + if (listener != null) { + listener.onLeaveVerificationError(-1, "不支持的验证类型"); + } + break; + } + } + + /** * 执行人脸离场校验 * @param faceBase64 人脸base64数据 */ @@ -100,7 +142,7 @@ public class LeaveVerificationManager { } // 调用离场校验接口(type=2表示人脸验证) - NetworkUtils.checkLeave(token, 2, hardwareId, null, null, + NetworkUtils.checkLeave(token, 2, hardwareId, null, faceBase64, "face_base64", null, new NetworkCallback() { @Override public void onStart() { @@ -210,7 +252,7 @@ public class LeaveVerificationManager { } // 调用离场校验接口(type=1表示验证码验证) - NetworkUtils.checkLeave(token, 1, hardwareId, verifyCode, null, + NetworkUtils.checkLeave(token, 1, hardwareId, verifyCode, null, null, null, new NetworkCallback() { @Override public void onStart() { @@ -321,7 +363,7 @@ public class LeaveVerificationManager { } // 调用离场校验接口(type=4表示扫码器验证) - NetworkUtils.checkLeave(token, 4, hardwareId, null, decryptText, + NetworkUtils.checkLeave(token, 4, hardwareId, null, null, null, decryptText, new NetworkCallback() { @Override public void onStart() { diff --git a/app/src/main/java/com/ouxuan/oxface/network/api/PadApiService.java b/app/src/main/java/com/ouxuan/oxface/network/api/PadApiService.java index afabb9b..355bb6a 100644 --- a/app/src/main/java/com/ouxuan/oxface/network/api/PadApiService.java +++ b/app/src/main/java/com/ouxuan/oxface/network/api/PadApiService.java @@ -1588,6 +1588,12 @@ public interface PadApiService { @SerializedName("v_code") private String vCode; // 验证码(type=1时必需) + @SerializedName("face_base64") + private String faceBase64; // 人脸base64数据(type=2时必需) + + @SerializedName("check_type") + private String checkType; // 检查类型(type=2时必需) + @SerializedName("decrypt_text") private String decryptText; // 解密文本(type=4时必需) @@ -1604,6 +1610,12 @@ public interface PadApiService { public String getVCode() { return vCode; } public void setVCode(String vCode) { this.vCode = vCode; } + public String getFaceBase64() { return faceBase64; } + public void setFaceBase64(String faceBase64) { this.faceBase64 = faceBase64; } + + public String getCheckType() { return checkType; } + public void setCheckType(String checkType) { this.checkType = checkType; } + public String getDecryptText() { return decryptText; } public void setDecryptText(String decryptText) { this.decryptText = decryptText; } } diff --git a/app/src/main/java/com/ouxuan/oxface/network/utils/NetworkUtils.java b/app/src/main/java/com/ouxuan/oxface/network/utils/NetworkUtils.java index 84853b7..0ce93be 100644 --- a/app/src/main/java/com/ouxuan/oxface/network/utils/NetworkUtils.java +++ b/app/src/main/java/com/ouxuan/oxface/network/utils/NetworkUtils.java @@ -671,7 +671,8 @@ public class NetworkUtils { * @param callback 回调接口 */ public static void checkLeave(String token, int type, int hardwareId, String vCode, - String decryptText, NetworkCallback callback) { + String faceBase64, String checkType, String decryptText, + NetworkCallback callback) { if (padApiService == null) { callback.onError(-1, "NetworkUtils未初始化,请先调用init()方法"); return; @@ -683,6 +684,8 @@ public class NetworkUtils { request.setType(type); request.setHardwareId(hardwareId); request.setVCode(vCode); + request.setFaceBase64(faceBase64); + request.setCheckType(checkType); request.setDecryptText(decryptText); callback.onStart();