From 2242536e5442de01cb816a766c0f869184d2d499 Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Wed, 30 Sep 2026 00:10:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=91=84=E5=83=8F=E5=A4=B4=E9=A2=84=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Commands/CameraMonitorSyncCommand.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Console/Commands/CameraMonitorSyncCommand.php b/app/Console/Commands/CameraMonitorSyncCommand.php index b1ec46e..ea11274 100644 --- a/app/Console/Commands/CameraMonitorSyncCommand.php +++ b/app/Console/Commands/CameraMonitorSyncCommand.php @@ -31,6 +31,9 @@ class CameraMonitorSyncCommand extends Command $health = $camera->health ?: $camera->health()->firstOrCreate([]); $status = (string) ($r['healthStatus'] ?? ($r['pushStatus'] ?? ($r['sdkStatus'] ?? 'UNKNOWN'))); $health->fill(['status' => $status, 'sdk_status' => $r['sdkStatus'] ?? null, 'tcp_reachable' => $r['tcpReachable'] ?? null, 'last_pdc_at' => $r['lastPdcAt'] ?? null, 'pdc_count' => $r['pdcCount'] ?? 0, 'push_age_seconds' => (($r['pushAgeSeconds'] ?? -1) >= 0 ? $r['pushAgeSeconds'] : null), 'last_tcp_error' => $r['networkReason'] ?? null, 'reconnect_attempts' => $r['autoReconnectFailures'] ?? 0, 'observed_at' => now()])->save(); + if (($r['sdkStatus'] ?? null) === 'ONLINE' && ($r['pushStatus'] ?? null) === 'ONLINE_PUSHING' && $camera->venue_id) { + CameraAlert::query()->where('venue_id', $camera->venue_id)->whereIn('status', ['OPEN', 'ACKNOWLEDGED'])->update(['status' => 'RESOLVED', 'recovered_at' => now()]); + } $abnormal = in_array($status, ['NETWORK_DOWN', 'LOGIN_FAILED', 'ARM_FAILED', 'PUSH_STALE', 'NO_PUSH_YET', 'PUSH_SUSPECT'], true); if (! $abnormal) return; $needsManual = (bool) ($r['manualActionRequired'] ?? false);