| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace App\Module\OpenAPI\Validators;
- use App\Module\OpenAPI\Models\OpenApiApp;
- use UCore\Validator;
- /**
- * 应用状态验证器
- */
- class AppStatusValidator extends Validator
- {
- /**
- * 验证应用状态是否有效
- *
- * @param mixed $value 应用ID(实际不使用,主要验证app对象)
- * @param array $data 验证数据
- * @return bool 验证是否通过
- */
- public function validate(mixed $value, array $data): bool
- {
- // 从 args 获取参数
- $appKey = $this->args[0] ?? 'app';
- /** @var OpenApiApp|null $app */
- $app = $this->validation->$appKey ?? null;
- if (!$app) {
- $this->addError('应用信息不存在,请先验证应用');
- return false;
- }
- // 验证应用是否激活
- if (!$app->isActive()) {
- $this->addError('应用未激活或已被禁用');
- return false;
- }
- // 验证应用是否过期
- if ($app->isExpired()) {
- $this->addError('应用已过期,请联系管理员');
- return false;
- }
- // 验证应用是否被暂停
- if ($app->isSuspended()) {
- $this->addError('应用已被暂停,请联系管理员');
- return false;
- }
- // 验证应用是否可以调用API
- if (!$app->can_call_api) {
- $this->addError('应用当前无法调用API');
- return false;
- }
- return true;
- }
- }
|