run(fn () => $service->listing(request()->all())); } public function options(MaintenanceService $service) { return $this->run(fn () => $service->options()); } public function detail(MaintenanceService $service) { return $this->run(function () use ($service) { $params = request()->validate(['id' => ['required', 'integer', 'min:1']]); return $service->detail((int) $params['id']); }); } public function submit(MaintenanceService $service) { return $this->run(fn () => $service->save(request()->all())); } public function status(MaintenanceService $service) { return $this->run(function () use ($service) { $params = request()->validate(['id' => ['required', 'integer', 'min:1'], 'enabled' => ['required', 'integer', 'in:0,1']]); return $service->status((int) $params['id'], (int) $params['enabled']); }); } public function logs(MaintenanceService $service) { return $this->run(fn () => $service->logs(request()->all())); } private function run(callable $callback) { try { return $this->success($callback()); } catch (ValidationException $e) { return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first()); } catch (Throwable $e) { Log::error('maintenance_admin_failed', ['exception' => $e]); return $this->error(HttpStatus::CUSTOM_ERROR, '维护设置服务暂不可用,请稍后重试'); } } }