2022-01-27 01:46:26 +08:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
|
|
|
|
use App\Models\ServerShadowsocks;
|
|
|
|
use App\Models\ServerTrojan;
|
|
|
|
use App\Services\ServerService;
|
|
|
|
use App\Utils\CacheKey;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
use App\Models\ServerGroup;
|
|
|
|
use App\Models\ServerV2ray;
|
|
|
|
use App\Models\Plan;
|
|
|
|
use App\Models\User;
|
|
|
|
use App\Models\Ticket;
|
|
|
|
use App\Models\Order;
|
|
|
|
use App\Models\StatOrder;
|
|
|
|
use App\Models\StatServer;
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Http;
|
|
|
|
use Laravel\Horizon\Contracts\MasterSupervisorRepository;
|
|
|
|
|
|
|
|
class SystemController extends Controller
|
|
|
|
{
|
2022-07-20 03:09:06 +08:00
|
|
|
public function getSystemStatus()
|
2022-01-27 01:46:26 +08:00
|
|
|
{
|
|
|
|
return response([
|
|
|
|
'data' => [
|
|
|
|
'schedule' => $this->getScheduleStatus(),
|
|
|
|
'horizon' => $this->getHorizonStatus()
|
|
|
|
]
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
2022-07-20 03:09:06 +08:00
|
|
|
public function getQueueStatus()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2022-01-27 01:46:26 +08:00
|
|
|
protected function getScheduleStatus():bool
|
|
|
|
{
|
|
|
|
return (time() - 120) < Cache::get(CacheKey::get('SCHEDULE_LAST_CHECK_AT', null));
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function getHorizonStatus():bool
|
|
|
|
{
|
|
|
|
if (! $masters = app(MasterSupervisorRepository::class)->all()) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return collect($masters)->contains(function ($master) {
|
|
|
|
return $master->status === 'paused';
|
|
|
|
}) ? false : true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|