From 4d4adc4facfa9a4031d42ec86ade75f21dad22c5 Mon Sep 17 00:00:00 2001 From: Linux Date: Sun, 20 Oct 2024 12:03:21 +0800 Subject: [PATCH] fix: Hide online user count display for child nodes without independent online users --- app/Services/ServerService.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Services/ServerService.php b/app/Services/ServerService.php index 8da9a3f..391157a 100644 --- a/app/Services/ServerService.php +++ b/app/Services/ServerService.php @@ -314,9 +314,11 @@ class ServerService $servers[$k]['online'] = Cache::get(CacheKey::get("SERVER_{$serverType}_ONLINE_USER", $v['parent_id'] ?? $v['id'])) ?? 0; // 如果是子节点,先尝试从缓存中获取 if($pid = $v['parent_id']){ - // 获取缓存 - $onlineUsers = Cache::get(CacheKey::get('MULTI_SERVER_' . $serverType . '_ONLINE_USER', $pid)) ?? []; - $servers[$k]['online'] = (collect($onlineUsers)->whereIn('ip', $v['ips'])->sum('online_user')) . "|{$servers[$k]['online']}"; + $cacheKey = CacheKey::get('MULTI_SERVER_' . $serverType . '_ONLINE_USER', $pid); + $onlineUsers = Cache::get($cacheKey) ?? []; + $onlineUserSum = collect($onlineUsers)->whereIn('ip', $v['ips'])->sum('online_user'); + $online = ($onlineUserSum > 0 ? $onlineUserSum . "|" : "") . $servers[$k]['online']; + $servers[$k]['online'] = $online; } $servers[$k]['last_check_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_CHECK_AT", $v['parent_id'] ?? $v['id'])); $servers[$k]['last_push_at'] = Cache::get(CacheKey::get("SERVER_{$serverType}_LAST_PUSH_AT", $v['parent_id'] ?? $v['id']));