Browse Source

add leave confirm

devab
赵明涛 4 weeks ago
parent
commit
6ff601f7ff
  1. 47
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
  2. 71
      app/src/main/java/com/ouxuan/oxface/network/LeaveVerificationManager.java
  3. 43
      app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java

47
app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java

@ -329,6 +329,53 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
public void showToast(String message) { public void showToast(String message) {
OXFaceOnlineActivity.this.showToast(message); OXFaceOnlineActivity.this.showToast(message);
} }
@Override
public void showLeaveVerificationResultPage(int errorCode, String errorMessage, boolean isSuccess, PadApiService.CheckLeaveResult result) {
// 跳转到离场校验结果页面
runOnUiThread(() -> {
try {
Intent intent = new Intent(OXFaceOnlineActivity.this, OrderVerificationResultActivity.class);
// 设置验证类型为离场验证使用特殊值5表示离场验证
intent.putExtra("verification_type", 5); // 5表示离场验证
// 设置结果状态
if (isSuccess) {
intent.putExtra("status", "离场成功");
intent.putExtra("message", errorMessage != null ? errorMessage : "离场成功");
} else {
intent.putExtra("status", "离场失败");
intent.putExtra("message", errorMessage != null ? errorMessage : "离场失败");
}
// 设置错误代码
intent.putExtra("error_code", errorCode);
// 如果有结果数据传入相关信息
if (result != null) {
intent.putExtra("order_no", result.getOrderNo() != null ? result.getOrderNo() : "");
intent.putExtra("project", result.getProject() != null ? result.getProject() : "");
} else {
intent.putExtra("order_no", "");
intent.putExtra("project", "离场验证");
}
// 设置默认值
intent.putExtra("order_type", 0); // 默认订单类型
intent.putExtra("verification_code", "");
intent.putExtra("card_no", "");
LogManager.logInfo(TAG, "跳转到离场校验结果页面,状态: " + (isSuccess ? "成功" : "失败") + ", 错误代码: " + errorCode);
startActivity(intent);
} catch (Exception e) {
LogManager.logError(TAG, "跳转到离场校验结果页面失败", e);
// 如果跳转失败回退到显示toast的方式
showToast(errorMessage != null ? errorMessage : (isSuccess ? "离场成功" : "离场失败"));
}
});
}
}); });
LogManager.logInfo(TAG, "离场校验管理器初始化完成"); LogManager.logInfo(TAG, "离场校验管理器初始化完成");

71
app/src/main/java/com/ouxuan/oxface/network/LeaveVerificationManager.java

@ -60,6 +60,15 @@ public class LeaveVerificationManager {
* @param message 消息内容 * @param message 消息内容
*/ */
void showToast(String message); void showToast(String message);
/**
* 跳转到离场校验结果页面
* @param errorCode 错误代码
* @param errorMessage 错误消息
* @param isSuccess 是否成功
* @param result 校验结果成功时传入
*/
void showLeaveVerificationResultPage(int errorCode, String errorMessage, boolean isSuccess, PadApiService.CheckLeaveResult result);
} }
public LeaveVerificationManager(Context context, LeaveVerificationListener listener) { public LeaveVerificationManager(Context context, LeaveVerificationListener listener) {
@ -163,8 +172,8 @@ public class LeaveVerificationManager {
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationSuccess(result); listener.onLeaveVerificationSuccess(result);
listener.showToast(result != null && result.getMessage() != null ?
result.getMessage() : "离场成功");
// 跳转到离场校验结果页面显示成功结果
listener.showLeaveVerificationResultPage(0, result != null ? result.getMessage() : "离场成功", true, result);
} }
} }
@ -178,6 +187,8 @@ public class LeaveVerificationManager {
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(errorCode, errorMessage); listener.onLeaveVerificationError(errorCode, errorMessage);
// 跳转到离场校验结果页面显示错误结果
listener.showLeaveVerificationResultPage(errorCode, errorMessage, false, null);
} }
} }
@ -187,7 +198,10 @@ public class LeaveVerificationManager {
Log.e(TAG, "离场校验网络异常: " + throwable.getMessage(), throwable); Log.e(TAG, "离场校验网络异常: " + throwable.getMessage(), throwable);
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(-1, "网络请求异常: " + throwable.getMessage());
String errorMessage = "网络请求异常: " + throwable.getMessage();
listener.onLeaveVerificationError(-1, errorMessage);
// 跳转到离场校验结果页面显示异常结果
listener.showLeaveVerificationResultPage(-1, errorMessage, false, null);
} }
} }
@ -207,8 +221,11 @@ public class LeaveVerificationManager {
Log.e(TAG, "执行离场校验时发生异常: " + e.getMessage(), e); Log.e(TAG, "执行离场校验时发生异常: " + e.getMessage(), e);
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(-1, "系统异常: " + e.getMessage());
String errorMessage = "系统异常: " + e.getMessage();
listener.onLeaveVerificationError(-1, errorMessage);
listener.onLeaveVerificationComplete(); listener.onLeaveVerificationComplete();
// 跳转到离场校验结果页面显示异常结果
listener.showLeaveVerificationResultPage(-1, errorMessage, false, null);
} }
} }
} }
@ -273,8 +290,8 @@ public class LeaveVerificationManager {
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationSuccess(result); listener.onLeaveVerificationSuccess(result);
listener.showToast(result != null && result.getMessage() != null ?
result.getMessage() : "离场成功");
// 跳转到离场校验结果页面显示成功结果
listener.showLeaveVerificationResultPage(0, result != null ? result.getMessage() : "离场成功", true, result);
} }
} }
@ -288,6 +305,8 @@ public class LeaveVerificationManager {
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(errorCode, errorMessage); listener.onLeaveVerificationError(errorCode, errorMessage);
// 跳转到离场校验结果页面显示错误结果
listener.showLeaveVerificationResultPage(errorCode, errorMessage, false, null);
} }
} }
@ -297,7 +316,10 @@ public class LeaveVerificationManager {
Log.e(TAG, "验证码离场校验网络异常: " + throwable.getMessage(), throwable); Log.e(TAG, "验证码离场校验网络异常: " + throwable.getMessage(), throwable);
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(-1, "网络请求异常: " + throwable.getMessage());
String errorMessage = "网络请求异常: " + throwable.getMessage();
listener.onLeaveVerificationError(-1, errorMessage);
// 跳转到离场校验结果页面显示异常结果
listener.showLeaveVerificationResultPage(-1, errorMessage, false, null);
} }
} }
@ -317,8 +339,11 @@ public class LeaveVerificationManager {
Log.e(TAG, "执行验证码离场校验时发生异常: " + e.getMessage(), e); Log.e(TAG, "执行验证码离场校验时发生异常: " + e.getMessage(), e);
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(-1, "系统异常: " + e.getMessage());
String errorMessage = "系统异常: " + e.getMessage();
listener.onLeaveVerificationError(-1, errorMessage);
listener.onLeaveVerificationComplete(); listener.onLeaveVerificationComplete();
// 跳转到离场校验结果页面显示异常结果
listener.showLeaveVerificationResultPage(-1, errorMessage, false, null);
} }
} }
} }
@ -384,8 +409,8 @@ public class LeaveVerificationManager {
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationSuccess(result); listener.onLeaveVerificationSuccess(result);
listener.showToast(result != null && result.getMessage() != null ?
result.getMessage() : "离场成功");
// 跳转到离场校验结果页面显示成功结果
listener.showLeaveVerificationResultPage(0, result != null ? result.getMessage() : "离场成功", true, result);
} }
} }
@ -399,6 +424,8 @@ public class LeaveVerificationManager {
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(errorCode, errorMessage); listener.onLeaveVerificationError(errorCode, errorMessage);
// 跳转到离场校验结果页面显示错误结果
listener.showLeaveVerificationResultPage(errorCode, errorMessage, false, null);
} }
} }
@ -408,7 +435,10 @@ public class LeaveVerificationManager {
Log.e(TAG, "扫码器离场校验网络异常: " + throwable.getMessage(), throwable); Log.e(TAG, "扫码器离场校验网络异常: " + throwable.getMessage(), throwable);
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(-1, "网络请求异常: " + throwable.getMessage());
String errorMessage = "网络请求异常: " + throwable.getMessage();
listener.onLeaveVerificationError(-1, errorMessage);
// 跳转到离场校验结果页面显示异常结果
listener.showLeaveVerificationResultPage(-1, errorMessage, false, null);
} }
} }
@ -428,8 +458,11 @@ public class LeaveVerificationManager {
Log.e(TAG, "执行扫码器离场校验时发生异常: " + e.getMessage(), e); Log.e(TAG, "执行扫码器离场校验时发生异常: " + e.getMessage(), e);
if (listener != null) { if (listener != null) {
listener.onLeaveVerificationError(-1, "系统异常: " + e.getMessage());
String errorMessage = "系统异常: " + e.getMessage();
listener.onLeaveVerificationError(-1, errorMessage);
listener.onLeaveVerificationComplete(); listener.onLeaveVerificationComplete();
// 跳转到离场校验结果页面显示异常结果
listener.showLeaveVerificationResultPage(-1, errorMessage, false, null);
} }
} }
} }
@ -446,31 +479,25 @@ public class LeaveVerificationManager {
// 订单超期需要扫码补缴 // 订单超期需要扫码补缴
LogManager.logInfo(TAG, "处理902错误 - 订单超期需要扫码补缴"); LogManager.logInfo(TAG, "处理902错误 - 订单超期需要扫码补缴");
VenueSceneUtils.playAudio("订单超期需要扫码补缴"); VenueSceneUtils.playAudio("订单超期需要扫码补缴");
if (listener != null) {
listener.showToast(errorMessage != null ? errorMessage : "订单超期,需要扫码补缴");
}
// 902错误由onError方法处理跳转逼辑这里只播放音频
break; break;
case 302: case 302:
// 跳转到验证结果页面 // 跳转到验证结果页面
LogManager.logInfo(TAG, "处理302错误 - 跳转到验证结果页面"); LogManager.logInfo(TAG, "处理302错误 - 跳转到验证结果页面");
// 这里可以添加页面跳转逻辑
// 302错误已由onError方法处理跳转逼辑这里不需要额外处理
break; break;
case 502: case 502:
// 服务器错误特殊处理 // 服务器错误特殊处理
LogManager.logInfo(TAG, "处理502错误 - 服务器暂时不可用"); LogManager.logInfo(TAG, "处理502错误 - 服务器暂时不可用");
if (listener != null) {
listener.showToast("服务器暂时不可用,请稍后再试");
}
// 502错误由onError方法处理跳转逼辑这里不需要额外处理
break; break;
default: default:
// 其他错误 // 其他错误
LogManager.logInfo(TAG, "处理其他错误 - code: " + errorCode); LogManager.logInfo(TAG, "处理其他错误 - code: " + errorCode);
if (listener != null) {
listener.showToast(errorMessage != null ? errorMessage : "离场失败");
}
// 错误由onError方法处理跳转逼辑这里不需要额外处理
break; break;
} }
} catch (Exception e) { } catch (Exception e) {

43
app/src/main/java/com/ouxuan/oxface/orderOX/OrderVerificationResultActivity.java

@ -183,6 +183,9 @@ public class OrderVerificationResultActivity extends AppCompatActivity {
case 4: case 4:
tvTitle.setText("扫码器核销结果"); tvTitle.setText("扫码器核销结果");
break; break;
case 5:
tvTitle.setText("离场校验结果");
break;
default: default:
tvTitle.setText("订单核销结果"); tvTitle.setText("订单核销结果");
break; break;
@ -221,6 +224,12 @@ public class OrderVerificationResultActivity extends AppCompatActivity {
// 清空现有内容 // 清空现有内容
layoutContent.removeAllViews(); layoutContent.removeAllViews();
// 如果是离场验证verificationType = 5显示离场验证特殊内容
if (verificationType == 5) {
buildLeaveVerificationContent();
return;
}
// 根据订单类型显示不同内容 // 根据订单类型显示不同内容
switch (orderType) { switch (orderType) {
case 0: // 场次核销 case 0: // 场次核销
@ -242,6 +251,40 @@ public class OrderVerificationResultActivity extends AppCompatActivity {
} }
/** /**
* 构建离场验证内容
*/
private void buildLeaveVerificationContent() {
// 离场验证显示验证结果相关信息
// 显示验证时间
String currentTime = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.getDefault())
.format(new java.util.Date());
addInfoRow("验证时间", currentTime);
// 如果有订单号显示订单信息
if (orderNo != null && !orderNo.isEmpty()) {
addInfoRow("订单编号", orderNo);
}
// 如果有项目名称显示项目信息
if (project != null && !project.isEmpty() && !"离场验证".equals(project)) {
addInfoRow("项目名称", project);
}
// 显示验证类型
addInfoRow("验证方式", "人脸识别");
// 如果有错误代码显示错误代码
Intent intent = getIntent();
if (intent != null) {
int errorCode = intent.getIntExtra("error_code", 0);
if (errorCode != 0) {
addInfoRow("错误代码", String.valueOf(errorCode));
}
}
}
/**
* 构建场次核销内容 * 构建场次核销内容
*/ */
private void buildSiteContent() { private void buildSiteContent() {

Loading…
Cancel
Save