mirror of
https://github.com/v2board/v2board.git
synced 2024-11-10 09:39:10 +08:00
update: fix statistics
This commit is contained in:
parent
c42097e92f
commit
4ba6edc328
@ -82,18 +82,12 @@ class DeepbworkController extends Controller
|
|||||||
Cache::put(CacheKey::get('SERVER_VMESS_ONLINE_USER', $server->id), count($data), 3600);
|
Cache::put(CacheKey::get('SERVER_VMESS_ONLINE_USER', $server->id), count($data), 3600);
|
||||||
Cache::put(CacheKey::get('SERVER_VMESS_LAST_PUSH_AT', $server->id), time(), 3600);
|
Cache::put(CacheKey::get('SERVER_VMESS_LAST_PUSH_AT', $server->id), time(), 3600);
|
||||||
$userService = new UserService();
|
$userService = new UserService();
|
||||||
$statData = [];
|
$formatData = [];
|
||||||
foreach ($data as $item) {
|
|
||||||
$u = $item['u'];
|
|
||||||
$d = $item['d'];
|
|
||||||
$userService->trafficFetch($u, $d, $item['user_id'], $server->toArray(), 'vmess');
|
|
||||||
$statData[$item['user_id']] = [$u, $d];
|
|
||||||
}
|
|
||||||
|
|
||||||
$statService = new StatisticalService();
|
foreach ($data as $item) {
|
||||||
$statService->setStartAt(strtotime(date('Y-m-d')));
|
$formatData[$item['user_id']] = [$item['u'], $item['d']];
|
||||||
$statService->setUserStats();
|
}
|
||||||
$statService->statUser($server['rate'], $statData);
|
$userService->trafficFetch($server->toArray(), 'vmess', $formatData);
|
||||||
|
|
||||||
return response([
|
return response([
|
||||||
'ret' => 1,
|
'ret' => 1,
|
||||||
|
@ -74,18 +74,12 @@ class ShadowsocksTidalabController extends Controller
|
|||||||
Cache::put(CacheKey::get('SERVER_SHADOWSOCKS_ONLINE_USER', $server->id), count($data), 3600);
|
Cache::put(CacheKey::get('SERVER_SHADOWSOCKS_ONLINE_USER', $server->id), count($data), 3600);
|
||||||
Cache::put(CacheKey::get('SERVER_SHADOWSOCKS_LAST_PUSH_AT', $server->id), time(), 3600);
|
Cache::put(CacheKey::get('SERVER_SHADOWSOCKS_LAST_PUSH_AT', $server->id), time(), 3600);
|
||||||
$userService = new UserService();
|
$userService = new UserService();
|
||||||
$statData = [];
|
$formatData = [];
|
||||||
foreach ($data as $item) {
|
|
||||||
$u = $item['u'];
|
|
||||||
$d = $item['d'];
|
|
||||||
$userService->trafficFetch($u, $d, $item['user_id'], $server->toArray(), 'shadowsocks');
|
|
||||||
$statData[$item['user_id']] = [$u, $d];
|
|
||||||
}
|
|
||||||
|
|
||||||
$statService = new StatisticalService();
|
foreach ($data as $item) {
|
||||||
$statService->setStartAt(strtotime(date('Y-m-d')));
|
$formatData[$item['user_id']] = [$item['u'], $item['d']];
|
||||||
$statService->setUserStats();
|
}
|
||||||
$statService->statUser($server['rate'], $statData);
|
$userService->trafficFetch($server->toArray(), 'shadowsocks', $formatData);
|
||||||
|
|
||||||
return response([
|
return response([
|
||||||
'ret' => 1,
|
'ret' => 1,
|
||||||
|
@ -79,18 +79,11 @@ class TrojanTidalabController extends Controller
|
|||||||
Cache::put(CacheKey::get('SERVER_TROJAN_ONLINE_USER', $server->id), count($data), 3600);
|
Cache::put(CacheKey::get('SERVER_TROJAN_ONLINE_USER', $server->id), count($data), 3600);
|
||||||
Cache::put(CacheKey::get('SERVER_TROJAN_LAST_PUSH_AT', $server->id), time(), 3600);
|
Cache::put(CacheKey::get('SERVER_TROJAN_LAST_PUSH_AT', $server->id), time(), 3600);
|
||||||
$userService = new UserService();
|
$userService = new UserService();
|
||||||
$statData = [];
|
$formatData = [];
|
||||||
foreach ($data as $item) {
|
foreach ($data as $item) {
|
||||||
$u = $item['u'];
|
$formatData[$item['user_id']] = [$item['u'], $item['d']];
|
||||||
$d = $item['d'];
|
|
||||||
$userService->trafficFetch($u, $d, $item['user_id'], $server->toArray(), 'trojan');
|
|
||||||
$statData[$item['user_id']] = [$u, $d];
|
|
||||||
}
|
}
|
||||||
|
$userService->trafficFetch($server->toArray(), 'trojan', $formatData);
|
||||||
$statService = new StatisticalService();
|
|
||||||
$statService->setStartAt(strtotime(date('Y-m-d')));
|
|
||||||
$statService->setUserStats();
|
|
||||||
$statService->statUser($server['rate'], $statData);
|
|
||||||
|
|
||||||
return response([
|
return response([
|
||||||
'ret' => 1,
|
'ret' => 1,
|
||||||
|
@ -64,18 +64,7 @@ class UniProxyController extends Controller
|
|||||||
Cache::put(CacheKey::get('SERVER_' . strtoupper($this->nodeType) . '_ONLINE_USER', $this->nodeInfo->id), count($data), 3600);
|
Cache::put(CacheKey::get('SERVER_' . strtoupper($this->nodeType) . '_ONLINE_USER', $this->nodeInfo->id), count($data), 3600);
|
||||||
Cache::put(CacheKey::get('SERVER_' . strtoupper($this->nodeType) . '_LAST_PUSH_AT', $this->nodeInfo->id), time(), 3600);
|
Cache::put(CacheKey::get('SERVER_' . strtoupper($this->nodeType) . '_LAST_PUSH_AT', $this->nodeInfo->id), time(), 3600);
|
||||||
$userService = new UserService();
|
$userService = new UserService();
|
||||||
foreach (array_keys($data) as $k) {
|
$userService->trafficFetch($this->nodeInfo->toArray(), $this->nodeType, $data);
|
||||||
$u = $data[$k][0];
|
|
||||||
$d = $data[$k][1];
|
|
||||||
$userService->trafficFetch($u, $d, $k, $this->nodeInfo->toArray(), $this->nodeType);
|
|
||||||
}
|
|
||||||
|
|
||||||
$statService = new StatisticalService();
|
|
||||||
$statService->setStartAt(strtotime(date('Y-m-d')));
|
|
||||||
$statService->setUserStats();
|
|
||||||
$statService->statUser($this->nodeInfo->rate, $data);
|
|
||||||
$statService->setServerStats();
|
|
||||||
$statService->statServer($this->nodeId, $this->nodeType, $data);
|
|
||||||
|
|
||||||
return response([
|
return response([
|
||||||
'data' => true
|
'data' => true
|
||||||
|
@ -85,30 +85,26 @@ class StatisticalService {
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function statServer($serverId, $serverType, $data)
|
public function statServer($serverId, $serverType, $u, $d)
|
||||||
{
|
{
|
||||||
foreach (array_keys($data) as $key) {
|
$this->serverStats[$serverType] = $this->serverStats[$serverType] ?? [];
|
||||||
$this->serverStats[$serverType] = $this->serverStats[$serverType] ?? [];
|
if (isset($this->serverStats[$serverType][$serverId])) {
|
||||||
if (isset($this->serverStats[$serverType][$serverId])) {
|
$this->serverStats[$serverType][$serverId][0] += $u;
|
||||||
$this->serverStats[$serverType][$serverId][0] += $data[$key][0];
|
$this->serverStats[$serverType][$serverId][1] += $d;
|
||||||
$this->serverStats[$serverType][$serverId][1] += $data[$key][1];
|
} else {
|
||||||
} else {
|
$this->serverStats[$serverType][$serverId] = [$u, $d];
|
||||||
$this->serverStats[$serverType][$serverId] = $data[$key];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Cache::set("stat_server_{$this->startAt}", json_encode($this->serverStats));
|
Cache::set("stat_server_{$this->startAt}", json_encode($this->serverStats));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function statUser($rate, $data)
|
public function statUser($rate, $userId, $u, $d)
|
||||||
{
|
{
|
||||||
foreach (array_keys($data) as $key) {
|
$this->userStats[$rate] = $this->userStats[$rate] ?? [];
|
||||||
$this->userStats[$rate] = $this->userStats[$rate] ?? [];
|
if (isset($this->userStats[$rate][$userId])) {
|
||||||
if (isset($this->userStats[$rate][$key])) {
|
$this->userStats[$rate][$userId][0] += $u;
|
||||||
$this->userStats[$rate][$key][0] += $data[$key][0];
|
$this->userStats[$rate][$userId][1] += $d;
|
||||||
$this->userStats[$rate][$key][1] += $data[$key][1];
|
} else {
|
||||||
} else {
|
$this->userStats[$rate][$userId] = [$u, $d];
|
||||||
$this->userStats[$rate][$key] = $data[$key];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Cache::set("stat_user_{$this->startAt}", json_encode($this->userStats));
|
Cache::set("stat_user_{$this->startAt}", json_encode($this->userStats));
|
||||||
}
|
}
|
||||||
|
@ -168,8 +168,18 @@ class UserService
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function trafficFetch(int $u, int $d, int $userId, array $server, string $protocol)
|
public function trafficFetch(array $server, string $protocol, array $data)
|
||||||
{
|
{
|
||||||
TrafficFetchJob::dispatch($u, $d, $userId, $server, $protocol);
|
$statService = new StatisticalService();
|
||||||
|
$statService->setStartAt(strtotime(date('Y-m-d')));
|
||||||
|
$statService->setUserStats();
|
||||||
|
$statService->setServerStats();
|
||||||
|
foreach (array_keys($data) as $userId) {
|
||||||
|
$u = $data[$userId][0];
|
||||||
|
$d = $data[$userId][1];
|
||||||
|
TrafficFetchJob::dispatch($u, $d, $userId, $server, $protocol);
|
||||||
|
$statService->statServer($server['id'], $protocol, $u, $d);
|
||||||
|
$statService->statUser($server['rate'], $userId, $u, $d);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user