TaskUserProgressRepository.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Module\Task\Repositorys;
  3. use App\Module\Task\Models\TaskUserProgress;
  4. use Dcat\Admin\Repositories\EloquentRepository;
  5. /**
  6. * 用户任务进度数据仓库类
  7. *
  8. * 提供用户任务进度数据的访问和操作功能。
  9. * 该类是用户任务进度模块与后台管理系统的桥梁,用于处理用户任务进度数据的CRUD操作。
  10. */
  11. class TaskUserProgressRepository extends EloquentRepository
  12. {
  13. /**
  14. * 关联的Eloquent模型类
  15. *
  16. * @var string
  17. */
  18. protected $eloquentClass = TaskUserProgress::class;
  19. /**
  20. * 默认预加载的关联关系
  21. *
  22. * @var array
  23. */
  24. protected $with = ['task', 'achievementCondition.condition', 'userTask'];
  25. /**
  26. * 获取用户任务进度
  27. *
  28. * @param int $userId 用户ID
  29. * @param int $achievementConditionId 达成条件ID
  30. * @return TaskUserProgress|null
  31. */
  32. public function getUserProgress(int $userId, int $achievementConditionId)
  33. {
  34. return TaskUserProgress::where('user_id', $userId)
  35. ->where('achievement_condition_id', $achievementConditionId)
  36. ->first();
  37. }
  38. /**
  39. * 创建用户任务进度
  40. *
  41. * @param array $data 进度数据
  42. * @return TaskUserProgress
  43. */
  44. public function createUserProgress(array $data)
  45. {
  46. return TaskUserProgress::create($data);
  47. }
  48. }