package com.ectrip.checkincar.model; import org.json.JSONObject; /** 车牌预约查询结果(后台 appquery 接口返回) */ public class QueryResult { /** true=查询成功(有或无预约都算成功响应);false=网络/解析异常 */ public boolean ok; /** 后台 success 字段:true=查到数据,false=无有效预约 */ public boolean success; /** 后台 info 字段:如"查询成功"、"未查询到当天有效车牌预约信息" */ public String info = ""; // data 字段(success=true 时完整返回,success=false 时可能只有 licensePlate) public String licensePlate = ""; public int orderId; public String orderCode = ""; public String driverName = ""; public String driverPhone = ""; public String useStartDate = ""; public String parkingAddress = ""; /** 0=待入场,1=已入场核销 */ public int status; /** 入场核销时间,未核销时为 null */ public String enterTime = ""; /** 真实后台返回;false=模拟查询 */ public boolean fromServer = false; /** 网络/解析异常 */ public static QueryResult error(String msg) { QueryResult r = new QueryResult(); r.ok = false; r.success = false; r.info = msg; return r; } /** 解析后台 appquery 接口响应 */ public static QueryResult fromServerJson(String body) { QueryResult r = new QueryResult(); r.ok = true; r.fromServer = true; try { JSONObject o = new JSONObject(body); r.success = o.optBoolean("success", false); r.info = o.optString("info", ""); JSONObject data = o.optJSONObject("data"); if (data != null) { r.licensePlate = data.optString("licensePlate", ""); r.orderId = data.optInt("orderId", 0); r.orderCode = data.optString("orderCode", ""); r.driverName = data.optString("driverName", ""); r.driverPhone = data.optString("driverPhone", ""); r.useStartDate = data.optString("useStartDate", ""); r.parkingAddress = data.optString("parkingAddress", ""); r.status = data.optInt("status", 0); r.enterTime = data.isNull("enterTime") ? "" : data.optString("enterTime", ""); } return r; } catch (Throwable t) { return error("响应解析失败: " + t.getMessage()); } } /** 手机号脱敏:138****8000 */ public String maskedPhone() { if (driverPhone == null || driverPhone.length() < 7) { return driverPhone == null ? "" : driverPhone; } return driverPhone.substring(0, 3) + "****" + driverPhone.substring(driverPhone.length() - 4); } /** 状态文本 */ public String statusText() { if (status == 1) return "已入场核销"; return "待入场"; } /** 状态是否为已入场 */ public boolean isCheckedIn() { return status == 1; } }