SystemController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Models\ServerShadowsocks;
  4. use App\Models\ServerTrojan;
  5. use App\Services\ServerService;
  6. use App\Utils\CacheKey;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use App\Models\ServerGroup;
  10. use App\Models\ServerV2ray;
  11. use App\Models\Plan;
  12. use App\Models\User;
  13. use App\Models\Ticket;
  14. use App\Models\Order;
  15. use App\Models\StatOrder;
  16. use App\Models\StatServer;
  17. use Illuminate\Support\Facades\Cache;
  18. use Illuminate\Support\Facades\DB;
  19. use Illuminate\Support\Facades\Http;
  20. use Laravel\Horizon\Contracts\MasterSupervisorRepository;
  21. class SystemController extends Controller
  22. {
  23. public function getSystemStatus()
  24. {
  25. return response([
  26. 'data' => [
  27. 'schedule' => $this->getScheduleStatus(),
  28. 'horizon' => $this->getHorizonStatus()
  29. ]
  30. ]);
  31. }
  32. public function getQueueStatus()
  33. {
  34. }
  35. protected function getScheduleStatus():bool
  36. {
  37. return (time() - 120) < Cache::get(CacheKey::get('SCHEDULE_LAST_CHECK_AT', null));
  38. }
  39. protected function getHorizonStatus():bool
  40. {
  41. if (! $masters = app(MasterSupervisorRepository::class)->all()) {
  42. return false;
  43. }
  44. return collect($masters)->contains(function ($master) {
  45. return $master->status === 'paused';
  46. }) ? false : true;
  47. }
  48. }