| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace App\Module\Game\Repositorys;
- use App\Module\Game\Models\GameRewardGroup;
- use Dcat\Admin\Repositories\EloquentRepository;
- /**
- * 奖励组数据仓库类
- *
- * 提供奖励组数据的访问和操作功能。
- * 该类是奖励组模块与后台管理系统的桥梁,用于处理奖励组数据的CRUD操作。
- */
- class GameRewardGroupRepository extends EloquentRepository
- {
- /**
- * 关联的Eloquent模型类
- *
- * @var string
- */
- protected $eloquentClass = GameRewardGroup::class;
- /**
- * 复制奖励组
- *
- * @param int $id 奖励组ID
- * @return GameRewardGroup
- */
- public function duplicate(int $id): GameRewardGroup
- {
- $group = $this->eloquentClass::with('rewardItems')->findOrFail($id);
-
- // 复制奖励组
- $newGroup = $group->replicate();
- $newGroup->name = $group->name . ' (复制)';
- $newGroup->code = $group->code . '_copy_' . time();
- $newGroup->save();
-
- // 复制奖励项
- foreach ($group->rewardItems as $item) {
- $newItem = $item->replicate();
- $newItem->group_id = $newGroup->id;
- $newItem->save();
- }
-
- return $newGroup;
- }
- }
|