92 lines
2.9 KiB
PHP
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";
|