JobfairRepository.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wuzhenke
  5. * Date: 2019/1/24
  6. * Time: 17:26
  7. */
  8. namespace App\Repositories\Jobfair;
  9. use App\Models\Jobfair\Jobfair;
  10. use Prettus\Repository\Eloquent\BaseRepository;
  11. class JobfairRepository extends BaseRepository
  12. {
  13. public function model()
  14. {
  15. return Jobfair::class;
  16. }
  17. public function firstJobfair($where)
  18. {
  19. return $this->model->when(get_subsite_id()>0,function($query){
  20. $query->whereHas('subsite', function ($query) {
  21. $query->where('subsite_id', get_subsite_id());
  22. });
  23. })->where($where)->where(function ($query) {
  24. $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
  25. })->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')->orderBy('predetermined_end', 'desc')->first();
  26. }
  27. public function findJobfair($where)
  28. {
  29. return $this->model->with(['floorPlan'=>function ($query) {
  30. $query->orderBy('order_list', 'desc');
  31. }])->where($where)->where(function ($query) use ($where) {
  32. $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);
  33. })->first();
  34. }
  35. public function allJobfair($where, $page, $pageCount,$search_type,$key)
  36. {
  37. return $this->model->when(get_subsite_id()>0,function($query){
  38. $query->whereHas('subsite', function ($query) {
  39. $query->where('subsite_id', get_subsite_id());
  40. });
  41. })->when($search_type == 'jobs',function($query) use ($key){
  42. $query->whereHas('putJobs',function($query) use ($key){
  43. $query->whereHas('jobs',function($query) use ($key){
  44. $query->where('jobs_name','like', '%'.$key.'%')->where('audit',1)->where('display',1);
  45. })->whereHas('jobfair_company',function ($query){
  46. $query->where('audit',1);
  47. });
  48. });
  49. })->when($search_type == 'company',function($query) use ($key){
  50. $query->whereHas('jobfairCompany',function($query) use ($key){
  51. $query->whereHas('companys',function($query) use ($key){
  52. $query->where('companyname','like', '%'.$key.'%');
  53. });
  54. });
  55. })
  56. ->where($where)->Where(function ($query) use ($where) {
  57. $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
  58. })->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')->orderBy('predetermined_end', 'desc')->offset($page*$pageCount)->limit($pageCount)->get();
  59. }
  60. public function Aioalljobfair($page)
  61. {
  62. return $this->model->when(get_subsite_id()>0,function($query){
  63. $query->whereHas('subsite', function ($query) {
  64. $query->where('subsite_id', get_subsite_id());
  65. });
  66. })->Where(function ($query) {
  67. $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
  68. })->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')->orderBy('predetermined_end', 'desc')->paginate($page);
  69. }
  70. public function findOne($where)
  71. {
  72. return $this->model->with('jobfairCompany')->where($where)->where(function ($query) use ($where) {
  73. $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);
  74. })->first();
  75. }
  76. public function getJobfairList($com_id)
  77. {
  78. return $this->model->with(['jobfairCompany'=>function ($query) use ($com_id){
  79. $query->where('company_id',$com_id);
  80. }])->where(function ($query) {
  81. $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);
  82. })->where(['display'=>1])->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')
  83. ->orderBy('predetermined_end', 'desc')->paginate(10);
  84. }
  85. public function getBlacklistCompany()
  86. {
  87. return $this->model->whereHas('jobfairCom',function ($query) {
  88. $query->where('type', 0)->where('black_status', 0)->where('audit', 1)->where('created_at', '>', date('Y-m-d H:i:s', strtotime('-30 days')));
  89. })->where('holddate_end', '<', time())->get();
  90. }
  91. //允许预定的招聘会
  92. public function getJobfairOpen()
  93. {
  94. return $this->model->where('predetermined_status', 1)->get();
  95. }
  96. //正在开启的招聘会
  97. public function getOpenJobfair($where = [])
  98. {
  99. return $this->model->where($where)->get();
  100. }
  101. //正在开启的招聘会
  102. public function getOneOpenJobfair($where = [])
  103. {
  104. return $this->model->where($where)->first();
  105. }
  106. //企业预定开启的招聘会
  107. public function getCompanyOpenJobfair($where = [],$company_where)
  108. {
  109. return $this->model->whereHas('jobfairCompany',function ($query) use ($company_where) {
  110. $query->where($company_where);
  111. })->where($where)->get();
  112. }
  113. //正在开启的招聘会
  114. public function getOneCompanyOpenJobfair($where = [],$company_where)
  115. {
  116. return $this->model->whereHas('jobfairCompany',function ($query) use ($company_where) {
  117. $query->where($company_where);
  118. })->where($where)->first();
  119. }
  120. public function getJobfairs($where = array(), $order = array(), $limit = '')
  121. {
  122. $rst = $this->model->when(get_subsite_id()>0,function($query){
  123. $query->whereHas('subsite', function ($query) {
  124. $query->where('subsite_id', get_subsite_id());
  125. });
  126. })->where($where)->where(function ($query) {
  127. $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
  128. });
  129. if ($order) {
  130. if (is_array($order)) {
  131. foreach ($order as $k => $v) {
  132. $rst->orderBy($k, $v);
  133. }
  134. } else {
  135. $rst->orderbyRaw($order);
  136. }
  137. }
  138. if ($limit) {
  139. $rst->limit($limit);
  140. }
  141. return $rst->get();
  142. }
  143. public function getJobfairNum($where)
  144. {
  145. return $this->model->where($where)->count();
  146. }
  147. public function getStatisticsJobfairs($where)
  148. {
  149. return $this->model->withTrashed()->where($where)->get();
  150. }
  151. }