NoticeRepository.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2018/11/8
  6. * Time: 10:15
  7. */
  8. namespace App\Repositories;
  9. use App\Models\Notice;
  10. use Prettus\Repository\Eloquent\BaseRepository;
  11. /**
  12. * Class NoticeRepositoryEloquent.
  13. *
  14. * @package namespace App\Repositories;
  15. */
  16. class NoticeRepository extends BaseRepository
  17. {
  18. /**
  19. * Specify Model class name
  20. *
  21. * @return string
  22. */
  23. public function model()
  24. {
  25. return Notice::class;
  26. }
  27. public function getNotices($where, $page_num)
  28. {
  29. $res = $this->model->whereHas('subsites', function ($query) {
  30. $query->where('subsite_id', get_subsite_id());
  31. })->where($where)->orderBy('sort', 'desc')->orderBy('created_at', 'desc');
  32. if ($page_num) {
  33. return $res->paginate($page_num);
  34. } else {
  35. return $res->get();
  36. }
  37. }
  38. public function getNotice($where)
  39. {
  40. return $this->model->with('show_category')->whereHas('subsites', function ($query) {
  41. $query->where('subsite_id', get_subsite_id());
  42. })->where($where)->first();
  43. }
  44. public function incrementData($where, $num, $filed)
  45. {
  46. return $this->model->where($where)->increment($filed, $num);
  47. }
  48. public function getLimitNotices($where = array(), $order = array(), $limit = '')
  49. {
  50. $res = $this->model->whereHas('subsites', function ($query) {
  51. $query->where('subsite_id', get_subsite_id());
  52. })->where($where);
  53. if ($order) {
  54. if (is_array($order)) {
  55. foreach ($order as $k => $v) {
  56. $res->orderBy($k, $v);
  57. }
  58. } else {
  59. $res->orderbyRaw($order);
  60. }
  61. }
  62. if ($limit) {
  63. $res->limit($limit);
  64. }
  65. return $res->get();
  66. }
  67. }