| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace App\Module\GameItems\Validations;
- use App\Module\GameItems\Validators\CraftRecipeValidator;
- use App\Module\GameItems\Validators\CraftConsumeValidator;
- use App\Module\GameItems\Validators\CraftConditionValidator;
- use UCore\ValidationCore;
- /**
- * 物品合成验证类
- *
- * 用于验证物品合成操作的输入数据,包括用户ID、配方ID和数量
- */
- class ItemCraftValidation extends ValidationCore
- {
- /** @var \App\Module\GameItems\Models\ItemRecipe|null 合成配方对象,由 CraftRecipeValidator 设置 */
- public ?\App\Module\GameItems\Models\ItemRecipe $recipe = null;
- /**
- * 验证规则
- *
- * @param array $rules 自定义规则
- * @return array
- */
- public function rules($rules = []): array
- {
- return [
- [
- 'user_id,recipe_id', 'required'
- ],
- [
- 'user_id,recipe_id,quantity', 'integer', 'min' => 1,
- 'msg' => '{attr}必须是大于0的整数'
- ],
- // 验证配方是否存在且可用
- [
- 'recipe_id', new CraftRecipeValidator($this, ['recipe']),
- 'msg' => '配方验证失败'
- ],
- // 验证合成条件是否满足
- [
- 'recipe_id', new CraftConditionValidator($this, ['user_id', 'recipe']),
- 'msg' => '合成条件不满足'
- ],
- // 验证合成消耗是否充足
- [
- 'recipe_id', new CraftConsumeValidator($this, ['user_id', 'quantity', 'recipe']),
- 'msg' => '合成消耗不足'
- ]
- ];
- }
- /**
- * 设置默认值
- *
- * @return array
- */
- public function default(): array
- {
- return [
- 'quantity' => 1
- ];
- }
- }
|