Files
zyt/server/check_tracking_status.php
2026-04-07 18:13:03 +08:00

92 lines
2.9 KiB
PHP

<?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";
// 查询所有记录
$stmt = $pdo->query("
SELECT
id,
tracking_number,
express_company,
current_state,
current_state_text,
is_signed,
auto_update,
next_update_time,
FROM_UNIXTIME(next_update_time) as next_update_datetime,
UNIX_TIMESTAMP() as now_timestamp,
FROM_UNIXTIME(UNIX_TIMESTAMP()) as now_datetime
FROM zyt_express_tracking
WHERE delete_time IS NULL
");
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (empty($records)) {
echo "没有找到任何物流追踪记录\n";
exit;
}
echo "找到 " . count($records) . " 条记录:\n\n";
foreach ($records as $record) {
echo "快递单号: {$record['tracking_number']}\n";
echo "快递公司: {$record['express_company']}\n";
echo "当前状态: {$record['current_state']} - {$record['current_state_text']}\n";
echo "是否签收: " . ($record['is_signed'] ? '是' : '否') . "\n";
echo "自动更新: " . ($record['auto_update'] ? '启用' : '禁用') . "\n";
echo "下次更新时间: {$record['next_update_datetime']} ({$record['next_update_time']})\n";
echo "当前时间: {$record['now_datetime']} ({$record['now_timestamp']})\n";
$shouldUpdate = $record['auto_update'] == 1
&& $record['next_update_time'] <= $record['now_timestamp']
&& $record['is_signed'] == 0
&& !in_array($record['current_state'], ['3', '4', '5']);
echo "是否应该更新: " . ($shouldUpdate ? '是' : '否') . "\n";
if (!$shouldUpdate) {
echo "不更新原因: ";
if ($record['auto_update'] != 1) echo "自动更新未启用 ";
if ($record['next_update_time'] > $record['now_timestamp']) echo "未到更新时间 ";
if ($record['is_signed'] == 1) echo "已签收 ";
if (in_array($record['current_state'], ['3', '4', '5'])) echo "状态为终态 ";
echo "\n";
}
echo "\n" . str_repeat('-', 60) . "\n\n";
}
// 查询符合更新条件的记录数
$stmt = $pdo->query("
SELECT COUNT(*) as count
FROM zyt_express_tracking
WHERE auto_update = 1
AND next_update_time <= UNIX_TIMESTAMP()
AND is_signed = 0
AND current_state NOT IN ('3', '4', '5')
AND delete_time IS NULL
");
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "符合自动更新条件的记录数: {$result['count']}\n";