| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?php
- namespace App\Module\Game\Services;
- use App\Module\Game\Logics\RewardCollectorLogic;
- /**
- * 奖励数据收集服务
- *
- * 用于收集本次请求中的所有奖励数据,包括物品奖励和代币奖励
- * 通过静态变量实现,确保在单次请求中能够累积所有奖励信息
- */
- class RewardCollectorService
- {
- /**
- * 添加物品奖励
- *
- * @param int $userId 用户ID
- * @param int $itemId 物品ID
- * @param int $instanceId 物品实例ID
- * @param int $quantity 奖励数量
- * @return void
- */
- public static function addItemReward(int $userId, int $itemId, int $instanceId, int $quantity): void
- {
- RewardCollectorLogic::addItemReward($userId, $itemId, $instanceId, $quantity);
- }
- /**
- * 添加代币奖励
- *
- * @param int $userId 用户ID
- * @param int $coinType 代币类型
- * @param int $quantity 奖励数量
- * @return void
- */
- public static function addCoinReward(int $userId, int $coinType, int $quantity): void
- {
- RewardCollectorLogic::addCoinReward($userId, $coinType, $quantity);
- }
- /**
- * 添加神像奖励
- *
- * @param int $userId 用户ID
- * @param int $godType 神像类型
- * @param int $diff 时间差值(秒)
- * @param int $quantity 奖励数量
- * @return void
- */
- public static function addGodReward(int $userId, int $godType, int $diff, int $quantity): void
- {
- RewardCollectorLogic::addGodReward($userId, $godType, $diff, $quantity);
- }
- /**
- * 获取本次请求的所有奖励数据
- *
- * @param int|null $userId 用户ID,如果为null则返回所有用户的数据
- * @return array 奖励数据数组,包含items、coins和gods
- */
- public static function getRewards(?int $userId = null): array
- {
- return RewardCollectorLogic::getRewards($userId);
- }
- /**
- * 清空本次请求的奖励数据
- *
- * @return void
- */
- public static function clearRewards(): void
- {
- RewardCollectorLogic::clearRewards();
- }
- /**
- * 检查是否有奖励数据
- *
- * @param int|null $userId 用户ID,如果为null则检查所有用户
- * @return bool
- */
- public static function hasRewards(?int $userId = null): bool
- {
- return RewardCollectorLogic::hasRewards($userId);
- }
- }
|