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";