MockQueryApi.java 1.63 KB
package com.ectrip.checkincar.net;

import com.ectrip.checkincar.model.QueryResult;

import java.util.Random;
import java.util.concurrent.TimeUnit;

/**
 * 模拟预约查询:固定 300ms 耗时,返回模拟预约详情。
 */
public class MockQueryApi implements QueryApi {

    private final Random random = new Random();

    @Override
    public QueryResult query(String plateNo) throws Exception {
        TimeUnit.MILLISECONDS.sleep(300);

        QueryResult r = new QueryResult();
        r.ok = true;
        r.fromServer = false;
        r.licensePlate = plateNo;

        // 模拟:80% 概率查到有效预约,20% 查不到
        if (random.nextInt(5) != 0) {
            r.success = true;
            r.info = "查询成功";
            r.orderId = 10000 + random.nextInt(90000);
            r.orderCode = "M" + System.currentTimeMillis() % 100000000L;
            String[] names = {"张三", "李四", "王五", "赵六", "陈七"};
            r.driverName = names[random.nextInt(names.length)];
            r.driverPhone = "138" + String.format("%04d%04d", random.nextInt(10000), random.nextInt(10000));
            r.useStartDate = new java.text.SimpleDateFormat("yyyy-MM-dd", java.util.Locale.CHINA)
                    .format(new java.util.Date());
            String[] parks = {"A区停车场", "B区停车场", "C区停车场", "VIP停车场"};
            r.parkingAddress = parks[random.nextInt(parks.length)];
            r.status = 0;  // 模拟待入场
            r.enterTime = "";
        } else {
            r.success = false;
            r.info = "未查询到当天有效车牌预约信息";
        }
        return r;
    }
}