SysMessageRepository.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Repositories;
  3. use App\Models\SysMessage;
  4. use Prettus\Repository\Eloquent\BaseRepository;
  5. use Prettus\Repository\Criteria\RequestCriteria;
  6. /**
  7. * Class SysMessageRepository.
  8. *
  9. * @package namespace App\Repositories;
  10. */
  11. class SysMessageRepository extends BaseRepository
  12. {
  13. /**
  14. * Specify Model class name
  15. *
  16. * @return string
  17. */
  18. public function model()
  19. {
  20. return SysMessage::class;
  21. }
  22. //获取最新消息记录
  23. public function getNewestSysMessage($where, $subsite_id)
  24. {
  25. //return $this->model->whereRaw($where)->orderBy('created_at', 'desc')->first();
  26. return $this->model->whereHas('subsites', function ($query) use ($subsite_id) {
  27. $query->where('subsite_id', $subsite_id);}
  28. )->whereRaw($where)->orderBy('created_at', 'desc')->first();
  29. }
  30. public function getSysMessages($where, $whereIn = array(), $subsite_id = 0)
  31. {
  32. /*
  33. if ($whereIn) {
  34. reset($whereIn);
  35. return $this->model->where($where)->whereIn(key($whereIn), $whereIn[key($whereIn)])->get();
  36. } else {
  37. return $this->model->where($where)->get();
  38. }
  39. */
  40. $rst = $this->model->whereHas('subsites', function ($query) use ($subsite_id) {$query->where('subsite_id', $subsite_id);})->where($where);
  41. if ($whereIn && is_array($whereIn)) {
  42. foreach ($whereIn as $k => $v) {
  43. $rst->whereIn($k, $v);
  44. }
  45. }
  46. return $rst->get();
  47. }
  48. public function getFilterMessages($where, $subsite_id = 0)
  49. {
  50. return $this->model->whereHas('subsites', function ($query) use ($subsite_id) {$query->where('subsite_id', $subsite_id);})->whereRaw($where)->get();
  51. }
  52. }