新增
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/**
|
||||
* 测试物流追踪查询(从数据库)
|
||||
*/
|
||||
|
||||
// 数据库配置
|
||||
$host = '39.97.232.35';
|
||||
$port = '3306';
|
||||
$database = 'cs_zyt';
|
||||
$username = 'root';
|
||||
$password = '749b460091647766';
|
||||
$charset = 'utf8mb4';
|
||||
|
||||
// 连接数据库
|
||||
$dsn = "mysql:host={$host};port={$port};charset={$charset}";
|
||||
$pdo = new PDO($dsn, $username, $password);
|
||||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
$pdo->exec("USE `{$database}`");
|
||||
|
||||
echo "========================================\n";
|
||||
echo "测试物流追踪查询(从数据库)\n";
|
||||
echo "========================================\n\n";
|
||||
|
||||
$trackingNumber = 'JD0230761381812';
|
||||
|
||||
// 1. 查询追踪主记录
|
||||
echo "[1] 查询追踪主记录...\n";
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT * FROM zyt_express_tracking
|
||||
WHERE tracking_number = :tracking_number
|
||||
AND delete_time IS NULL
|
||||
");
|
||||
$stmt->execute(['tracking_number' => $trackingNumber]);
|
||||
$tracking = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$tracking) {
|
||||
echo "❌ 未找到追踪记录\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
echo "✓ 找到追踪记录\n";
|
||||
echo " 快递公司: {$tracking['express_company_name']}\n";
|
||||
echo " 当前状态: {$tracking['current_state_text']}\n";
|
||||
echo " 是否签收: " . ($tracking['is_signed'] ? '是' : '否') . "\n";
|
||||
echo " 查询次数: {$tracking['query_count']}\n";
|
||||
echo " 最后查询: " . date('Y-m-d H:i:s', $tracking['last_query_time']) . "\n\n";
|
||||
|
||||
// 2. 查询轨迹明细
|
||||
echo "[2] 查询轨迹明细...\n";
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT * FROM zyt_express_trace
|
||||
WHERE tracking_number = :tracking_number
|
||||
ORDER BY trace_time_stamp DESC
|
||||
");
|
||||
$stmt->execute(['tracking_number' => $trackingNumber]);
|
||||
$traces = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo "✓ 找到 " . count($traces) . " 条轨迹记录\n\n";
|
||||
|
||||
if (!empty($traces)) {
|
||||
echo "最新3条轨迹:\n";
|
||||
foreach (array_slice($traces, 0, 3) as $trace) {
|
||||
echo " [{$trace['trace_time']}] {$trace['trace_context']}\n";
|
||||
if ($trace['location']) {
|
||||
echo " 位置: {$trace['location']}\n";
|
||||
}
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
// 3. 模拟API返回格式
|
||||
echo "[3] 模拟API返回格式...\n";
|
||||
$payload = [
|
||||
'carrier' => $tracking['express_company'],
|
||||
'carrier_label' => $tracking['express_company_name'],
|
||||
'kuaidi_com' => $tracking['express_company'],
|
||||
'traces' => array_map(function($trace) {
|
||||
return [
|
||||
'time' => $trace['trace_time'],
|
||||
'ftime' => $trace['trace_time'],
|
||||
'context' => $trace['trace_context'],
|
||||
'location' => $trace['location'],
|
||||
'status' => $trace['status'],
|
||||
'statusCode' => $trace['status_code'],
|
||||
];
|
||||
}, $traces),
|
||||
'state' => $tracking['current_state'],
|
||||
'state_text' => $tracking['current_state_text'],
|
||||
'source' => 'database',
|
||||
'hint' => '',
|
||||
'last_query_time' => date('Y-m-d H:i:s', $tracking['last_query_time']),
|
||||
'query_count' => $tracking['query_count'],
|
||||
];
|
||||
|
||||
echo json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
echo "\n\n";
|
||||
|
||||
echo "========================================\n";
|
||||
echo "测试完成!\n";
|
||||
echo "========================================\n";
|
||||
echo "✓ 数据库查询正常\n";
|
||||
echo "✓ 数据格式兼容API\n";
|
||||
echo "✓ 可以直接返回给前端\n";
|
||||
Reference in New Issue
Block a user