getRewardGroup($groupIdOrCode); } /** * 发放奖励 * * @param int $userId 用户ID * @param int|string $groupIdOrCode 奖励组ID或编码 * @param string $sourceType 来源类型(任务、活动、签到等) * @param int $sourceId 来源ID * @return RewardResultDto 奖励结果 */ public static function grantReward(int $userId, $groupIdOrCode, string $sourceType, int $sourceId): RewardResultDto { $logic = new RewardLogic(); return $logic->grantReward($userId, $groupIdOrCode, $sourceType, $sourceId); } /** * 批量发放奖励 * * @param array $userIds 用户ID数组 * @param int|string $groupIdOrCode 奖励组ID或编码 * @param string $sourceType 来源类型 * @param int $sourceId 来源ID * @return array 奖励结果数组,键为用户ID,值为RewardResultDto */ public static function batchGrantReward(array $userIds, $groupIdOrCode, string $sourceType, int $sourceId): array { $results = []; $logic = new RewardLogic(); foreach ($userIds as $userId) { $results[$userId] = $logic->grantReward($userId, $groupIdOrCode, $sourceType, $sourceId); } return $results; } /** * 检查奖励组是否存在 * * @param int|string $groupIdOrCode 奖励组ID或编码 * @return bool 是否存在 */ public static function rewardGroupExists($groupIdOrCode): bool { return self::getRewardGroup($groupIdOrCode) !== null; } }