处理jc流量显示的问题

This commit is contained in:
yinjianm
2026-02-26 04:06:28 +08:00
parent 2d14e22322
commit 529953d98d
6 changed files with 286 additions and 17 deletions
+41 -5
View File
@@ -14,13 +14,49 @@ class TrafficLogResource extends JsonResource
*/
public function toArray(Request $request): array
{
$serverId = (int) data_get($this->resource, 'server_id', 0);
$serverType = strtolower((string) data_get($this->resource, 'server_type', ''));
$serverName = data_get($this->resource, 'server_name')
?: data_get($this->resource, 'node_name')
?: data_get($this->resource, 'server.name');
if (!$serverName && $serverId > 0) {
$serverName = "Node #{$serverId}";
}
$deviceIps = data_get($this->resource, 'device_ips', []);
if (!is_array($deviceIps)) {
$deviceIps = [];
}
$deviceName = data_get($this->resource, 'device_name');
if (!$deviceName) {
$deviceName = $deviceIps[0] ?? 'Unknown';
}
$data = [
"d" => $this['d'],
"u" => $this['u'],
"record_at" => $this['record_at'],
"server_rate" => $this['server_rate'],
'id' => data_get($this->resource, 'id'),
'd' => (int) data_get($this->resource, 'd', 0),
'u' => (int) data_get($this->resource, 'u', 0),
'record_at' => (int) data_get($this->resource, 'record_at', 0),
'record_type' => data_get($this->resource, 'record_type'),
'server_rate' => (float) data_get($this->resource, 'server_rate', 1),
'server_id' => $serverId > 0 ? $serverId : null,
'server_type' => $serverType !== '' ? $serverType : null,
'server_name' => $serverName,
'node_name' => $serverName,
'node_key' => $serverId > 0 && $serverType !== '' ? "{$serverType}{$serverId}" : null,
'device_name' => $deviceName,
'device_ips' => $deviceIps,
'device_count' => (int) data_get($this->resource, 'device_count', count($deviceIps)),
'created_at' => data_get($this->resource, 'created_at'),
'updated_at' => data_get($this->resource, 'updated_at'),
];
if(!config('hidden_features.enable_exposed_user_count_fix')) $data['user_id']= $this['user_id'];
if (!config('hidden_features.enable_exposed_user_count_fix')) {
$data['user_id'] = (int) data_get($this->resource, 'user_id', 0);
}
return $data;
}
}