| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace App\Module\GameItems\Validation;
- use App\Module\GameItems\Validators\ItemQuantityValidator;
- use UCore\ValidationCore;
- /**
- * 物品数量验证类
- *
- * 用于验证用户是否拥有足够数量的物品,支持普通物品和实例物品
- */
- class ItemQuantityValidation extends ValidationCore
- {
- /** @var int|null 物品ID */
- public ?int $item_id = null;
- /** @var int|null 用户ID */
- public ?int $user_id = null;
- /** @var int|null 物品数量 */
- public ?int $quantity = null;
- /** @var int|null 实例ID */
- public ?int $instance_id = null;
- /** @var bool|null 是否包含所有类型物品 */
- public ?bool $include_all_types = null;
- /**
- * 验证规则
- *
- * @param array $rules 自定义规则
- * @return array
- */
- public function rules($rules = []): array
- {
- return [
- [
- 'item_id,user_id', 'required'
- ],
- [
- 'item_id,user_id', 'integer', 'min' => 1,
- 'msg' => '{attr}必须是大于0的整数'
- ],
- [
- 'quantity', 'integer', 'min' => 1,
- 'msg' => '物品数量必须是大于0的整数',
- 'skipOnEmpty' => true
- ],
- [
- 'instance_id', 'integer', 'min' => 1,
- 'msg' => '实例ID必须是大于0的整数',
- 'skipOnEmpty' => true
- ],
- [
- 'include_all_types', 'boolean',
- 'skipOnEmpty' => true
- ],
- [
- 'item_id', new ItemQuantityValidator($this, ['user_id', 'quantity', 'instance_id', 'include_all_types']),
- 'msg' => '物品数量验证失败'
- ]
- ];
- }
- /**
- * 设置默认值
- *
- * @return array
- */
- public function default(): array
- {
- return [
- 'quantity' => 1,
- 'instance_id' => null,
- 'include_all_types' => false
- ];
- }
- }
|