QueryResult.java
3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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;
}
}