| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?php
- namespace App\Module\Task\Repositorys;
- use App\Module\Task\Models\TaskAchievementCondition;
- use Dcat\Admin\Repositories\EloquentRepository;
- /**
- * 任务达成条件数据仓库类
- *
- * 提供任务达成条件数据的访问和操作功能。
- * 该类是任务达成条件模块与后台管理系统的桥梁,用于处理任务达成条件数据的CRUD操作。
- */
- class TaskAchievementConditionRepository extends EloquentRepository
- {
- /**
- * 关联的Eloquent模型类
- *
- * @var string
- */
- protected $eloquentClass = TaskAchievementCondition::class;
-
- /**
- * 获取指定任务的所有达成条件
- *
- * @param int $taskId 任务ID
- * @param string|null $conditionType 条件类型(prerequisite=前置条件,progress=进度条件)
- * @return array 达成条件列表
- */
- public function getConditionsByTaskId(int $taskId, ?string $conditionType = null): array
- {
- $query = $this->eloquentClass::where('task_id', $taskId);
-
- if ($conditionType) {
- $query->where('condition_type', $conditionType);
- }
-
- return $query->orderBy('sort_order')
- ->get()
- ->toArray();
- }
-
- /**
- * 获取指定任务的所有必要达成条件
- *
- * @param int $taskId 任务ID
- * @return array 必要达成条件列表
- */
- public function getRequiredConditionsByTaskId(int $taskId): array
- {
- return $this->eloquentClass::where('task_id', $taskId)
- ->where('is_required', true)
- ->orderBy('sort_order')
- ->get()
- ->toArray();
- }
- }
|