From be0849d69c88c8ab66c511a63ffbbcfea7506773 Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Wed, 30 Sep 2026 11:52:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=91=84=E5=83=8F=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/CameraMonitoringController.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Http/Controllers/Api/CameraMonitoringController.php b/app/Http/Controllers/Api/CameraMonitoringController.php index d3233ea..adb31b0 100644 --- a/app/Http/Controllers/Api/CameraMonitoringController.php +++ b/app/Http/Controllers/Api/CameraMonitoringController.php @@ -75,12 +75,21 @@ class CameraMonitoringController extends Controller $health->fill([ 'status' => $r['healthStatus'] ?? ($r['pushStatus'] ?? ($r['sdkStatus'] ?? 'UNKNOWN')), 'sdk_status' => $r['sdkStatus'] ?? null, + 'tcp_reachable' => array_key_exists('tcpReachable', $r) ? $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' && $camera->venue_id) { + CameraAlert::query() + ->where('venue_id', $camera->venue_id) + ->whereIn('status', ['OPEN', 'ACKNOWLEDGED']) + ->update(['status' => 'RESOLVED', 'recovered_at' => now()]); + } $health->setAttribute('last_pdc_at_source', $r['lastPdcAt'] ?? null); $camera->setRelation('health', $health); });