CardRidingRepository.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Repositories;
  3. use App\Models\CardRiding;
  4. use Illuminate\Database\Eloquent\Builder;
  5. class CardRidingRepository extends BaseRepository
  6. {
  7. public function __construct(CardRiding $model)
  8. {
  9. $this->model = $model;
  10. }
  11. /**
  12. * 根据区域id获取可用骑行卡列表
  13. *
  14. * @param $area_id integer
  15. *
  16. * @return collection
  17. * */
  18. public function byAreaIdGetCardRidings($area_id)
  19. {
  20. return $this->model->query()
  21. ->with(['areaRidingCard'])
  22. ->whereHas('areaRidingCard', function (Builder $query) use ($area_id) {
  23. $query->where('area_id', $area_id);
  24. }, '>', 0)
  25. ->where('status', CardRiding::STATUS_OK)
  26. ->orderBy('price')
  27. ->get();
  28. }
  29. public function byAreaIdIsExists($area_id)
  30. {
  31. return $this->model->query()
  32. ->with(['areaRidingCard'])
  33. ->whereHas('areaRidingCard', function (Builder $query) use ($area_id) {
  34. return $query->where('area_id', $area_id);
  35. }, '>', 0)
  36. ->where('status', CardRiding::STATUS_OK)
  37. ->exists();
  38. }
  39. /**
  40. * 判断骑行卡是否启用
  41. *
  42. * @param $id integer
  43. *
  44. * @return bool true表示可用 false不可用
  45. *
  46. * */
  47. public function isStatusOK($id)
  48. {
  49. $cardRiding = $this->model->query()->where('id', $id)->where('status', CardRiding::STATUS_OK)->first();
  50. if (empty($cardRiding)) return false;
  51. return true;
  52. }
  53. }