|
|
@@ -87,18 +87,14 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
@Override |
|
|
|
@SingleClick |
|
|
|
public void onClick(View view) { |
|
|
|
ChannelsInterceptUtils.channelInterceptNd(getActivity(), curBizContent.getVehiclePlate()+"_"+curBizContent.getVehiclePlateColor(), new ChannelsInterceptUtils.OnChannelInterceptCallback2() { |
|
|
|
@Override |
|
|
|
public void off() {//9901 9052拦截 |
|
|
|
ChannelsInterceptUtils.businessIntercept(getActivity(), curBizContent.getOrderId(), EnumBean.backKey("卡签注销", EnumBean.CHANNEL_BUSINESS_INTERCEPT), new ChannelsInterceptUtils.OnChannelInterceptCallback() { |
|
|
|
@Override |
|
|
|
public void offChannelIntercept() { |
|
|
|
verify(); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
// 检查是否有车辆信息 |
|
|
|
if (curBizContent == null) { |
|
|
|
toast("请先搜索车辆信息"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 调用注销条件查询接口 |
|
|
|
callDeviceCancelQuery(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
@@ -106,7 +102,7 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取数据 - 参考ProgressQueryActivity的模式 |
|
|
|
* 获取数据 - 只查询车辆设备信息并显示 |
|
|
|
*/ |
|
|
|
private void getData() { |
|
|
|
if (FunHelper.isEmpty(plateNum) || FunHelper.isEmpty(colorNum)) { |
|
|
@@ -116,7 +112,7 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
|
|
|
|
showDialog("查询中..."); |
|
|
|
|
|
|
|
// 第一步:先查询车辆设备信息,获取cardId和obuId |
|
|
|
// 只查询车辆设备信息并显示 |
|
|
|
queryVehicleDevice(); |
|
|
|
} |
|
|
|
|
|
|
@@ -138,6 +134,8 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
MyRetrofit.newInstanceGZ(this, true, IFCode.IFCODE_VEHICLE_QUERY_DEVICE, request, new MyRetrofit.ReturnResult() { |
|
|
|
@Override |
|
|
|
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) { |
|
|
|
hideDialog(); |
|
|
|
|
|
|
|
// 打印响应数据 |
|
|
|
LogUtils.i("车辆设备查询", "响应数据: " + new Gson().toJson(resultBean)); |
|
|
|
|
|
|
@@ -145,10 +143,10 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
VehicleQueryDeviceResponse response = parseVehicleQueryDeviceResponse(resultBean); |
|
|
|
|
|
|
|
if (response.getCode() == 0 && response.getData() != null) { |
|
|
|
// 成功,获取到cardId和obuId,现在调用设备注销申请接口 |
|
|
|
callDeviceCancelApply(response.getData()); |
|
|
|
// 成功,显示车辆详细信息 |
|
|
|
showVehicleDetailInfo(response.getData()); |
|
|
|
} else { |
|
|
|
hideDialog(); |
|
|
|
// 失败,显示错误信息 |
|
|
|
toast(response.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
@@ -156,67 +154,131 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
@Override |
|
|
|
public void onError(Response<Result> resp) { |
|
|
|
hideDialog(); |
|
|
|
toast("车辆设备查询失败,请重试"); |
|
|
|
toast("设备注销申请失败,请重试"); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 调用设备注销申请接口 |
|
|
|
* 调用注销条件查询接口(下一步按钮点击时调用) |
|
|
|
*/ |
|
|
|
private void callDeviceCancelApply(VehicleQueryDeviceResponse.VehicleQueryDeviceData vehicleData) { |
|
|
|
// 构建设备注销申请请求参数 |
|
|
|
private void callDeviceCancelQuery() { |
|
|
|
// 检查是否有车辆信息 |
|
|
|
if (curBizContent == null) { |
|
|
|
toast("车辆信息不完整"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
showDialog("查询注销条件中..."); |
|
|
|
|
|
|
|
// 构建注销条件查询请求参数 |
|
|
|
DeviceCancelQueryRequest request = new DeviceCancelQueryRequest(); |
|
|
|
request.setAccessToken(MyShared.getInstance().get(MyShared.ACCESSTOKEN, "") + ""); |
|
|
|
request.setCardId(vehicleData.getCardId()); // 从车辆设备查询结果获取卡号 |
|
|
|
request.setCardId(curBizContent.getCardId()); // 从当前车辆信息获取卡号 |
|
|
|
request.setLoginSource("APP"); // 登录来源 |
|
|
|
request.setObuId(vehicleData.getObuId()); // 从车辆设备查询结果获取签号 |
|
|
|
request.setObuId(curBizContent.getObuId()); // 从当前车辆信息获取签号 |
|
|
|
request.setCustomerId(MyShared.getInstance().get(MyShared.STAFFID, "") + ""); |
|
|
|
request.setVehicleId(plateNum + "_" + colorNum); // 车辆ID格式:车牌号_颜色 |
|
|
|
|
|
|
|
// 打印请求参数 |
|
|
|
LogUtils.i("设备注销申请", "请求参数: " + new Gson().toJson(request)); |
|
|
|
LogUtils.i("注销条件查询", "请求参数: " + new Gson().toJson(request)); |
|
|
|
|
|
|
|
// 调用设备注销申请接口 |
|
|
|
MyRetrofit.newInstanceGZ(this, true, IFCode.IFCODE_DEVICE_CANCEL_APPLY, request, new MyRetrofit.ReturnResult() { |
|
|
|
// 调用注销条件查询接口 |
|
|
|
MyRetrofit.newInstanceGZ(this, true, IFCode.IFCODE_DEVICE_CANCEL_QUERY, request, new MyRetrofit.ReturnResult() { |
|
|
|
@Override |
|
|
|
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) { |
|
|
|
hideDialog(); |
|
|
|
|
|
|
|
// 打印响应数据 |
|
|
|
LogUtils.i("设备注销申请", "响应数据: " + new Gson().toJson(resultBean)); |
|
|
|
LogUtils.i("注销条件查询", "响应数据: " + new Gson().toJson(resultBean)); |
|
|
|
|
|
|
|
if (resultBean.getCode() == 0) { |
|
|
|
// 成功,显示车辆详细信息 |
|
|
|
showVehicleDetailInfo(vehicleData); |
|
|
|
// 解析响应数据 |
|
|
|
DeviceCancelQueryResponse response = parseDeviceCancelQueryResponse(resultBean); |
|
|
|
|
|
|
|
if (response.getCode() == 0 && response.getData() != null) { |
|
|
|
// 成功,显示注销条件确认弹窗 |
|
|
|
showCancelConditionDialog(response.getData()); |
|
|
|
} else { |
|
|
|
// 失败,显示错误信息 |
|
|
|
toast(resultBean.getMessage()); |
|
|
|
toast(response.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void onError(Response<Result> resp) { |
|
|
|
hideDialog(); |
|
|
|
toast("设备注销申请失败,请重试"); |
|
|
|
toast("注销条件查询失败,请重试"); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 显示注销条件确认弹窗 |
|
|
|
*/ |
|
|
|
private void showCancelConditionDialog(DeviceCancelQueryResponse.DeviceCancelQueryData data) { |
|
|
|
LogUtils.i("注销条件弹窗", "开始显示弹窗,数据: " + new Gson().toJson(data)); |
|
|
|
|
|
|
|
// 构建弹窗内容 |
|
|
|
StringBuilder content = new StringBuilder(); |
|
|
|
content.append("产品名称:").append(data.getProductName()).append("\n"); |
|
|
|
content.append("注销年限:").append(data.getCancelAgeLimit()).append("年\n"); |
|
|
|
content.append("注销违约金:").append(data.getCancelAmount()).append("分\n"); |
|
|
|
content.append("是否黑名单:").append(data.isBlack() ? "是" : "否").append("\n"); |
|
|
|
content.append("是否需要支付违约金:").append(data.isCancel() ? "是" : "否"); |
|
|
|
|
|
|
|
LogUtils.i("注销条件弹窗", "弹窗内容: " + content.toString()); |
|
|
|
|
|
|
|
try { |
|
|
|
// 显示确认弹窗 |
|
|
|
new ConfirmDialog.Builder(this) |
|
|
|
.setMsg(content.toString(), "注销条件确认", "确认注销", "取消", 0, 0, false) |
|
|
|
.onClick(new ConfirmDialog.Result() { |
|
|
|
@Override |
|
|
|
public void confirm() { |
|
|
|
LogUtils.i("注销条件弹窗", "用户点击确认"); |
|
|
|
// 用户确认,跳转到下一步 |
|
|
|
jumpToNextStep(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void cancel() { |
|
|
|
LogUtils.i("注销条件弹窗", "用户点击取消"); |
|
|
|
// 用户取消,不做任何操作 |
|
|
|
} |
|
|
|
}) |
|
|
|
.show(); |
|
|
|
LogUtils.i("注销条件弹窗", "弹窗显示完成"); |
|
|
|
} catch (Exception e) { |
|
|
|
LogUtils.e("注销条件弹窗", "弹窗显示异常: " + e.getMessage()); |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 跳转到下一步 |
|
|
|
*/ |
|
|
|
private void jumpToNextStep() { |
|
|
|
// TODO: 跳转到ETC注销第二步界面 |
|
|
|
// Intent intent = new Intent(this, LogoutEtcStep2Activity.class); |
|
|
|
// intent.putExtra("vehicleData", curBizContent); |
|
|
|
// startActivity(intent); |
|
|
|
toast("跳转到下一步(待实现)"); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 调用设备注销条件查询接口(保留原方法,用于兼容) |
|
|
|
*/ |
|
|
|
private void callDeviceCancelQuery(String vehiclePlate, String vehiclePlateColor) { |
|
|
|
private void callDeviceCancelQuery(VehicleQueryDeviceResponse.VehicleQueryDeviceData vehicleData) { |
|
|
|
showDialog("查询中..."); |
|
|
|
|
|
|
|
// 构建请求参数 |
|
|
|
DeviceCancelQueryRequest request = new DeviceCancelQueryRequest(); |
|
|
|
request.setAccessToken(MyShared.getInstance().get(MyShared.ACCESSTOKEN, "") + ""); |
|
|
|
request.setCardId(""); // 卡号,暂时为空 |
|
|
|
request.setCardId(vehicleData.getCardId()); // 卡号,暂时为空 |
|
|
|
request.setCustomerId(MyShared.getInstance().get(MyShared.STAFFID, "") + ""); // 客户ID,暂时为空 |
|
|
|
request.setLoginSource("APP"); // 登录来源 |
|
|
|
request.setObuId(""); // 签号,暂时为空 |
|
|
|
request.setVehicleId(vehiclePlate + "_" + vehiclePlateColor); // 车辆ID格式:车牌号_颜色 |
|
|
|
request.setObuId(vehicleData.getObuId()); // 签号,暂时为空 |
|
|
|
request.setVehicleId(vehicleData.getVehicleId()); // 车辆ID格式:车牌号_颜色 |
|
|
|
|
|
|
|
// 打印请求参数 |
|
|
|
LogUtils.i("设备注销条件查询请求参数", new Gson().toJson(request)); |
|
|
@@ -235,7 +297,7 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
|
|
|
|
if (response.getCode() == 0) { |
|
|
|
// 成功,显示结果 |
|
|
|
showSearchResult(response, vehiclePlate, vehiclePlateColor); |
|
|
|
showSearchResult(response, vehicleData.getVehiclePlate(), String.valueOf(vehicleData.getVehiclePlateColor())); |
|
|
|
} else { |
|
|
|
// 失败,显示错误信息 |
|
|
|
toast(response.getMessage()); |
|
|
@@ -279,7 +341,9 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
// 创建BizContent数据用于显示 |
|
|
|
curBizContent = new ResultBean.BizContent(); |
|
|
|
curBizContent.setVehiclePlate(vehicleData.getVehiclePlate()); |
|
|
|
curBizContent.setVehiclePlateColor(String.valueOf(vehicleData.getVehiclePlateColor())); |
|
|
|
// 车牌颜色 - 要使用setVehiclePlateColorStr,不要使用setVehiclePlateColor |
|
|
|
// curBizContent.setVehiclePlateColor(String.valueOf(vehicleData.getVehiclePlateColor())); |
|
|
|
curBizContent.setVehiclePlateColorStr(EnumBean.backValue(String.valueOf(vehicleData.getVehiclePlateColor()), EnumBean.VEHICLE_COLOR)); |
|
|
|
curBizContent.setName(vehicleData.getCustomerName()); |
|
|
|
curBizContent.setCustomerIdtype(String.valueOf(vehicleData.getCustomerIdType())); |
|
|
|
curBizContent.setCustomerIdnum(vehicleData.getCustomerIdNum()); |
|
|
@@ -527,6 +591,7 @@ public class LogoutEtcStep1Activity extends AppActivity { |
|
|
|
binding.tvOrderVehiclePlate.setText(FunHelper.isEmpty(curBizContent.getVehiclePlate()) ? "" : curBizContent.getVehiclePlate()); |
|
|
|
|
|
|
|
// 车牌颜色 |
|
|
|
LogUtils.i("车牌颜色", "车牌颜色: " + curBizContent.getVehiclePlateColorStr()); |
|
|
|
binding.tvColor.setText(FunHelper.isEmpty(curBizContent.getVehiclePlateColorStr()) ? "" : curBizContent.getVehiclePlateColorStr()); |
|
|
|
|
|
|
|
// 收费车型 |