Kaynağa Gözat

通行流水查询 - step 1

GZBranch
wufasong 2 hafta önce
ebeveyn
işleme
4715c6f39c

+ 1
- 1
app/src/main/java/com/huntersun/vkyes/etcopencard/project/api/bean/IFCode.java Dosyayı Görüntüle

@@ -210,7 +210,7 @@ public class IFCode {
public static final String IFCODE916 = "iaw/trafficsupple/apply"; //欠费补缴支付下单接口
public static final String IFCODE915 = "iaw/trafficsupple/payQuery"; //欠费补缴支付查询接口

public static final String IFCODE152 = "iaw/app/issue/cardAnnounce/cardinformationquery"; //用户卡列表查询
public static final String IFCODE152 = "iaw/api/vehicleInfo/queryCardInfoAndCustomerTel"; //查看车辆(卡、人信息)
public static final String IFCODE_FLOWING_COUNT = "iaw/app/issue/cardAnnounce/totalbill"; //用户通行流水统计(等待提供)
public static final String IFCODE_FLOWING_DOWNLOAD = "iaw/app/issue/cardAnnounce/detaildownload"; //用户通行流水记录下载(等待提供)
public static final String IFCODE925 = "iaw/app/issue/cardAnnounce/passbill"; //车辆通行流水分页查询接口

+ 20
- 0
app/src/main/java/com/huntersun/vkyes/etcopencard/project/api/bean/QueryCardInfoResponse.java Dosyayı Görüntüle

@@ -0,0 +1,20 @@
package com.huntersun.vkyes.etcopencard.project.api.bean;
import java.util.List;
/**
* 查看车辆(卡、人信息)接口响应数据模型
*/
public class QueryCardInfoResponse {
public String customerTel; // 用户手机号
public List<CardInfoModel> cardInfoList; // 卡信息列表
/**
* 卡信息模型
*/
public static class CardInfoModel {
public String cardId; // 卡号
public String cardStatus; // 卡状态
public int cardType; // 卡类型
}
}

+ 92
- 15
app/src/main/java/com/huntersun/vkyes/etcopencard/project/ui/activity/after/CheckRunningWaterStep1Activity.java Dosyayı Görüntüle

@@ -13,6 +13,7 @@ import com.huntersun.vkyes.etcopencard.project.api.MyRetrofit;
import com.huntersun.vkyes.etcopencard.project.api.Result;
import com.huntersun.vkyes.etcopencard.project.api.bean.CardBean;
import com.huntersun.vkyes.etcopencard.project.api.bean.IFCode;
import com.huntersun.vkyes.etcopencard.project.api.bean.QueryCardInfoResponse;
import com.huntersun.vkyes.etcopencard.project.api.bean.ResultBean;
import com.huntersun.vkyes.etcopencard.project.dialog.ConfirmDialog;
import com.huntersun.vkyes.etcopencard.project.ui.adapter.CheckRunningCardListAdapter2;
@@ -25,7 +26,8 @@ import com.huntersun.vkyes.etcopencard.src.widget.StatusLayout;
import com.parkingwang.keyboard.PopupKeyboard;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener;

import com.huntersun.vkyes.etcopencard.project.tool.MyShared;
import com.huntersun.vkyes.etcopencard.project.utils.Constants;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
@@ -35,6 +37,8 @@ import java.util.Map;

import androidx.annotation.NonNull;
import retrofit2.Response;
import com.hjq.toast.ToastUtils;
import com.blankj.utilcode.util.LogUtils;

/**
* Date :2023-03-24
@@ -92,29 +96,49 @@ public class CheckRunningWaterStep1Activity extends AppActivity implements OnRef

private void getList() {
Map<String, String> params = new HashMap<>();
// params.put("vehicleId", curVehicleId);
params.put("accessToken", MyShared.getInstance().get(MyShared.ACCESSTOKEN, "") + "");
params.put("loginSource", Constants.LOGIN_SOURCE);
params.put("vehicleId", curVehicleId);
params.put("vehiclePlate", curVehicleId.split("_")[0]);
params.put("vehiclePlateColor", curVehicleId.split("_")[1]);
MyRetrofit.newInstanceGZ(true,IFCode.IFCODE152, params, new MyRetrofit.ReturnResult() {
LogUtils.i("通行流水查询", "请求参数: " + JSONObject.toJSONString(params));
MyRetrofit.newInstanceGZ(true, IFCode.IFCODE152, params, new MyRetrofit.ReturnResult() {
@Override
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) {
//FunHelper.closeKeyboard(etSearch);
if (popupKeyboard != null) popupKeyboard.dismiss(CheckRunningWaterStep1Activity.this);
LinkedTreeMap<String,Object> data = JSONObject.parseObject(resultBean.getData().toString(),LinkedTreeMap.class);
List<CardBean> result = JSONArray.parseArray(data.get("result").toString(),CardBean.class);
if (FunHelper.isEmpty(result)) {
postDelayed(CheckRunningWaterStep1Activity.this::showEmpty, 300);
return;
LogUtils.i("通行流水查询", "接口返回: " + JSONObject.toJSONString(resultBean));

try {
// 解析返回数据
String dataStr = resultBean.getData().toString();
LogUtils.i("通行流水查询", "原始数据: " + dataStr);
// 使用JSONObject解析数据
com.alibaba.fastjson.JSONObject dataJson = JSONObject.parseObject(dataStr);
QueryCardInfoResponse response = parseQueryCardInfoResponse(dataJson);
if (popupKeyboard != null) popupKeyboard.dismiss(CheckRunningWaterStep1Activity.this);
if (response == null || response.cardInfoList == null || response.cardInfoList.isEmpty()) {
postDelayed(CheckRunningWaterStep1Activity.this::showEmpty, 300);
return;
}
// 将新数据模型转换为CardBean列表
List<CardBean> result = convertToCardBeanList(response);
showComplete();
adapter.replaceData(result);
} catch (Exception e) {
LogUtils.e("通行流水查询", "数据解析失败: " + e.getMessage());
e.printStackTrace();
if (popupKeyboard != null) popupKeyboard.dismiss(CheckRunningWaterStep1Activity.this);
ToastUtils.show("数据解析失败");
}
showComplete();
adapter.replaceData(result);
}

@Override
public void onError(Result resp) {
if (popupKeyboard != null) popupKeyboard.dismiss(CheckRunningWaterStep1Activity.this);
if (null!=resp){
if (null != resp) {
new ConfirmDialog.Builder(CheckRunningWaterStep1Activity.this).setMsg(resp.message, "", "确定", "", R.mipmap.icon_lotgout_etc_hint, 0, true)
.onClick(new ConfirmDialog.Result() {
@Override
@@ -131,6 +155,59 @@ public class CheckRunningWaterStep1Activity extends AppActivity implements OnRef

}

/**
* 解析查询车辆(卡、人信息)接口返回数据
*/
private QueryCardInfoResponse parseQueryCardInfoResponse(com.alibaba.fastjson.JSONObject dataJson) {
QueryCardInfoResponse response = new QueryCardInfoResponse();
try {
// 解析用户手机号
response.customerTel = dataJson.getString("customerTel");
// 解析卡信息列表
com.alibaba.fastjson.JSONArray cardInfoArray = dataJson.getJSONArray("cardInfoList");
if (cardInfoArray != null && !cardInfoArray.isEmpty()) {
response.cardInfoList = new ArrayList<>();
for (int i = 0; i < cardInfoArray.size(); i++) {
com.alibaba.fastjson.JSONObject cardInfoJson = cardInfoArray.getJSONObject(i);
QueryCardInfoResponse.CardInfoModel cardInfo = new QueryCardInfoResponse.CardInfoModel();
cardInfo.cardId = cardInfoJson.getString("cardId");
cardInfo.cardStatus = cardInfoJson.getString("cardStatus");
cardInfo.cardType = cardInfoJson.getIntValue("cardType");
response.cardInfoList.add(cardInfo);
}
}
} catch (Exception e) {
LogUtils.e("通行流水查询", "解析数据异常: " + e.getMessage());
e.printStackTrace();
return null;
}
return response;
}

/**
* 将新数据模型转换为CardBean列表
*/
private List<CardBean> convertToCardBeanList(QueryCardInfoResponse response) {
List<CardBean> result = new ArrayList<>();
if (response.cardInfoList != null) {
for (QueryCardInfoResponse.CardInfoModel cardInfo : response.cardInfoList) {
CardBean cardBean = new CardBean();
cardBean.cardId = cardInfo.cardId;
cardBean.cardStatus = cardInfo.cardStatus;
cardBean.cardType = String.valueOf(cardInfo.cardType);
cardBean.tel = response.customerTel; // 设置用户手机号
result.add(cardBean);
}
}
return result;
}

@Override
public StatusLayout getStatusLayout() {
return binding.hlStatusHint;

+ 5
- 0
app/src/main/java/com/huntersun/vkyes/etcopencard/project/ui/adapter/CheckRunningCardListAdapter2.java Dosyayı Görüntüle

@@ -49,6 +49,11 @@ public class CheckRunningCardListAdapter2 extends BaseQuickAdapter<CardBean, Bas
holder.setText(R.id.tvCardId, FunHelper.isEmpty(bizContent.cardId) ? "" : bizContent.cardId);
holder.setText(R.id.tvCardType, FunHelper.isEmpty(bizContent.cardType) ? "" : ("1".equals(bizContent.cardType) ? "记账卡" : "储值卡"));
holder.setText(R.id.tvCardStatus, FunHelper.isEmpty(bizContent.cardStatus) ? "" : EnumBean.backValue(bizContent.cardStatus, EnumBean.ETC_STATUS));
// 显示用户手机号
String customerTel = FunHelper.isEmpty(bizContent.tel) ? "暂无" : bizContent.tel;
holder.setText(R.id.tvCustomerTel, "用户手机号: " + customerTel);
beforeBean = bizContent;
holder.setOnClickListener(R.id.btnNext, new View.OnClickListener() {

+ 23
- 7
app/src/main/res/layout/layout_check_running_water_card_item.xml Dosyayı Görüntüle

@@ -6,16 +6,32 @@
android:id="@+id/LLSearchResult"
style="@style/MatchWrap.Vertical">

<TextView
android:id="@+id/tvTitle"
style="@style/WrapWrap"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_15"
android:paddingTop="@dimen/dp_15"
android:paddingRight="@dimen/dp_15"
android:text="正常卡信息"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
android:gravity="center_vertical">

<TextView
android:id="@+id/tvTitle"
style="@style/WrapWrap"
android:text="正常卡信息"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp_16"
android:textStyle="bold"
android:layout_weight="1" />

<TextView
android:id="@+id/tvCustomerTel"
style="@style/WrapWrap"
android:text="用户手机号: "
android:textColor="@color/color_666666"
android:textSize="@dimen/sp_12" />

</LinearLayout>

<!--卡信息-->
<LinearLayout

Loading…
İptal
Kaydet