| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace App\Module\GameItems\Examples;
- use App\Module\GameItems\Validation\ItemQuantityValidation;
- use Exception;
- /**
- * 物品数量验证示例
- */
- class ItemQuantityExample
- {
- /**
- * 使用普通物品
- *
- * @param int $userId 用户ID
- * @param int $itemId 物品ID
- * @param int $quantity 数量
- * @return bool 是否成功
- * @throws Exception 验证失败时抛出异常
- */
- public static function useNormalItem(int $userId, int $itemId, int $quantity = 1): bool
- {
- // 创建验证对象
- $validation = new ItemQuantityValidation();
- $validation->user_id = $userId;
- $validation->item_id = $itemId;
- $validation->quantity = $quantity;
- // 验证
- if (!$validation->validated()) {
- throw new Exception($validation->getErrors()[0] ?? '物品数量验证失败');
- }
- // 验证通过,执行使用物品的逻辑
- // ...
- return true;
- }
- /**
- * 使用实例物品
- *
- * @param int $userId 用户ID
- * @param int $itemId 物品ID
- * @param int $instanceId 实例ID
- * @return bool 是否成功
- * @throws Exception 验证失败时抛出异常
- */
- public static function useInstanceItem(int $userId, int $itemId, int $instanceId): bool
- {
- // 创建验证对象
- $validation = new ItemQuantityValidation();
- $validation->user_id = $userId;
- $validation->item_id = $itemId;
- $validation->instance_id = $instanceId;
- // 验证
- if (!$validation->validated()) {
- throw new Exception($validation->getErrors()[0] ?? '物品数量验证失败');
- }
- // 验证通过,执行使用实例物品的逻辑
- // ...
- return true;
- }
- /**
- * 使用任意类型物品
- *
- * @param int $userId 用户ID
- * @param int $itemId 物品ID
- * @param int $quantity 数量
- * @return bool 是否成功
- * @throws Exception 验证失败时抛出异常
- */
- public static function useAnyTypeItem(int $userId, int $itemId, int $quantity = 1): bool
- {
- // 创建验证对象
- $validation = new ItemQuantityValidation();
- $validation->user_id = $userId;
- $validation->item_id = $itemId;
- $validation->quantity = $quantity;
- $validation->include_all_types = true;
- // 验证
- if (!$validation->validated()) {
- throw new Exception($validation->getErrors()[0] ?? '物品数量验证失败');
- }
- // 验证通过,执行使用物品的逻辑
- // ...
- return true;
- }
- }
|