| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace App\Module\Task\Repositorys;
- use App\Module\Task\Models\TaskUserProgress;
- use Dcat\Admin\Repositories\EloquentRepository;
- /**
- * 用户任务进度数据仓库类
- *
- * 提供用户任务进度数据的访问和操作功能。
- * 该类是用户任务进度模块与后台管理系统的桥梁,用于处理用户任务进度数据的CRUD操作。
- */
- class TaskUserProgressRepository extends EloquentRepository
- {
- /**
- * 关联的Eloquent模型类
- *
- * @var string
- */
- protected $eloquentClass = TaskUserProgress::class;
-
- /**
- * 获取用户特定任务的所有进度
- *
- * @param int $userId 用户ID
- * @param int $taskId 任务ID
- * @return array 用户任务进度列表
- */
- public function getUserTaskProgress(int $userId, int $taskId): array
- {
- return $this->eloquentClass::where('user_id', $userId)
- ->where('task_id', $taskId)
- ->with(['achievementCondition', 'achievementCondition.condition'])
- ->get()
- ->toArray();
- }
-
- /**
- * 获取用户特定任务条件的进度
- *
- * @param int $userId 用户ID
- * @param int $taskId 任务ID
- * @param int $conditionId 条件ID
- * @return TaskUserProgress|null 用户任务进度对象
- */
- public function getUserTaskConditionProgress(int $userId, int $taskId, int $conditionId): ?TaskUserProgress
- {
- return $this->eloquentClass::where('user_id', $userId)
- ->where('task_id', $taskId)
- ->where('achievement_condition_id', $conditionId)
- ->first();
- }
- }
|