diff --git a/app/Models/Host.php b/app/Models/Host.php index b994e61..328872a 100644 --- a/app/Models/Host.php +++ b/app/Models/Host.php @@ -110,6 +110,16 @@ public function isStopped(): bool return $this->status === 'stopped'; } + public function isPending(): bool + { + return $this->status === 'pending'; + } + + public function isUnavailable(): bool + { + return $this->status === 'unavailable'; + } + public function renew(): bool { if (! $this->isCycle()) { diff --git a/app/Models/Module.php b/app/Models/Module.php index 8cb76e3..d5c3c16 100644 --- a/app/Models/Module.php +++ b/app/Models/Module.php @@ -48,14 +48,14 @@ class Module extends Authenticatable // post, get, patch, delete 等请求 public function remote($func, $requests): array { - $response = $this->http()->post('functions/'.$func, $requests); + $response = $this->http()->post('functions/' . $func, $requests); return $this->getResponse($response); } public function http($files = []): PendingRequest { - $http = Http::module($this->api_token, $this->url.'/remote'); + $http = Http::module($this->api_token, $this->url . '/remote'); if ($files) { $http->asMultipart(); @@ -68,7 +68,7 @@ public function http($files = []): PendingRequest if ($this->ip_port) { // 如果设置了 ip_port 则使用 ip_port - $http->baseUrl($this->ip_port.'/remote'); + $http->baseUrl($this->ip_port . '/remote'); // 添加 Host 头 $http->withHeaders([ @@ -107,10 +107,11 @@ private function getResponse(Response $response): array } /** - * @param $method - * @param $path - * @param $requests - * @param array $files + * @param $method + * @param $path + * @param $requests + * @param array $files + * * @return array */ public function request($method, $path, $requests, array $files = []): array @@ -118,7 +119,7 @@ public function request($method, $path, $requests, array $files = []): array try { return $this->baseRequest($method, "functions/$path", $requests, $files); } /** @noinspection PhpRedundantCatchClauseInspection */ catch (ConnectException|ConnectionException $e) { - Log::error('在执行 call '.$method.' '.$path.' 时发生错误: '.$e->getMessage()); + Log::error('在执行 call ' . $method . ' ' . $path . ' 时发生错误: ' . $e->getMessage()); return [ 'body' => null, @@ -194,7 +195,7 @@ public function check(): bool #[ArrayShape(['transactions' => 'array'])] public function calculate(): array { - $cache_key = 'module_earning_'.$this->id; + $cache_key = 'module_earning_' . $this->id; return Cache::get($cache_key, []); } @@ -202,10 +203,11 @@ public function calculate(): array /** * 扣除费用 * - * @param string|null $amount - * @param string|null $description - * @param bool $fail - * @param array $options + * @param string|null $amount + * @param string|null $description + * @param bool $fail + * @param array $options + * * @return string */ public function reduce(string|null $amount = '0', string|null $description = '消费', bool $fail = false, array $options = []): string @@ -214,7 +216,7 @@ public function reduce(string|null $amount = '0', string|null $description = ' return $this->balance; } - Cache::lock('module_balance_'.$this->id, 10)->block(10, function () use ($amount, $fail, $description, $options) { + Cache::lock('module_balance_' . $this->id, 10)->block(10, function () use ($amount, $fail, $description, $options) { $this->refresh(); if ($this->balance < $amount) { @@ -249,10 +251,11 @@ public function reduce(string|null $amount = '0', string|null $description = ' /** * 增加余额 * - * @param string|null $amount - * @param string $payment - * @param string|null $description - * @param array $options + * @param string|null $amount + * @param string $payment + * @param string|null $description + * @param array $options + * * @return string */ public function charge(string|null $amount = '0', string $payment = 'console', string|null $description = '充值', array $options = []): string @@ -261,7 +264,7 @@ public function charge(string|null $amount = '0', string $payment = 'console', s return $this->balance; } - Cache::lock('module_balance_'.$this->id, 10)->block(10, function () use ($amount, $description, $payment, $options) { + Cache::lock('module_balance_' . $this->id, 10)->block(10, function () use ($amount, $description, $payment, $options) { $this->refresh(); $this->balance = bcadd($this->balance, $amount, 4); @@ -297,4 +300,19 @@ public function whereHasBalance(string $amount = '0'): self|Builder|CachedBuilde { return $this->where('balance', '>=', $amount); } + + public function isUp(): bool + { + return $this->status === 'up'; + } + + public function isDown(): bool + { + return $this->status === 'down'; + } + + public function isMaintenance(): bool + { + return $this->status === 'maintenance'; + } }