From 98990f841f0e2c5abc820a885272febc74e1f580 Mon Sep 17 00:00:00 2001 From: wyx2685 Date: Fri, 20 Oct 2023 22:21:08 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E8=AE=A1=E6=95=B0=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../V1/Server/UniProxyController.php | 27 ++++++++++--------- .../Controllers/V1/User/UserController.php | 6 +---- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/V1/Server/UniProxyController.php b/app/Http/Controllers/V1/Server/UniProxyController.php index fcf8a082..cc85f390 100644 --- a/app/Http/Controllers/V1/Server/UniProxyController.php +++ b/app/Http/Controllers/V1/Server/UniProxyController.php @@ -44,14 +44,10 @@ class UniProxyController extends Controller $users = $users->toArray(); $users = array_map(function ($user) { - $count =0; $ips_array = Cache::get('ALIVE_IP_USER_'. $user['id']); + $count = 0; if ($ips_array) { - foreach ($ips_array as $nodetypeid => $ip_array) { - foreach ($ip_array['aliveips'] as $ip) { - $count++; - } - } + $count = $ips_array['alive_ip']; } $user['alive_ip'] = $count; return $user; @@ -94,22 +90,29 @@ class UniProxyController extends Controller ], 400); } - foreach ($data as $k => $v) { + foreach ($data as $nodeid => $ips) { $updateAt = time(); - $oldips_array = Cache::get('ALIVE_IP_USER_'. $k) ?? []; + $oldips_array = Cache::get('ALIVE_IP_USER_'. $nodeid) ?? []; // 更新节点数据 - $oldips_array[$this->nodeType . $this->nodeId] = ['aliveips' => $v, 'lastupdateAt' => $updateAt]; - //删除过期节点在线数据 + $oldips_array[$this->nodeType . $this->nodeId] = ['aliveips' => $ips, 'lastupdateAt' => $updateAt]; + // 删除过期节点在线数据 $expired_array = []; foreach($oldips_array as $nodetypeid => $oldips) { - if ($updateAt - $oldips['lastupdateAt'] > 300){ + if ($updateAt - $oldips['lastupdateAt'] > 120){ $expired_array[$nodetypeid] = ''; } } // 清理过期数据并存回缓存 $new_array = array_diff_key($oldips_array, $expired_array); - Cache::put('ALIVE_IP_USER_'. $k, $new_array, 120); + $count = 0; + foreach($new_array as $nodetypeid => $newdata) { + foreach($newdata['aliveips'] as $newip) { + $count++; + } + } + $new_array['alive_ip'] = $count; + Cache::put('ALIVE_IP_USER_'. $nodeid, $new_array, 120); } return response([ diff --git a/app/Http/Controllers/V1/User/UserController.php b/app/Http/Controllers/V1/User/UserController.php index 8a8e9d40..cba0a4b6 100755 --- a/app/Http/Controllers/V1/User/UserController.php +++ b/app/Http/Controllers/V1/User/UserController.php @@ -158,11 +158,7 @@ class UserController extends Controller $countalive = 0; $ips_array = Cache::get('ALIVE_IP_USER_'. $request->user['id']); if ($ips_array) { - foreach ($ips_array as $nodetypeid => $ip_array) { - foreach ($ip_array['aliveips'] as $ip) { - $countalive++; - } - } + $countalive = $ips_array['alive_ip']; } $user['alive_ip'] = $countalive;