123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wuzhenke
- * Date: 2019/1/24
- * Time: 17:26
- */
- namespace App\Repositories\Jobfair;
- use App\Models\Jobfair\Jobfair;
- use Prettus\Repository\Eloquent\BaseRepository;
- class JobfairRepository extends BaseRepository
- {
- public function model()
- {
- return Jobfair::class;
- }
- public function firstJobfair($where)
- {
- return $this->model->when(get_subsite_id()>0,function($query){
- $query->whereHas('subsite', function ($query) {
- $query->where('subsite_id', get_subsite_id());
- });
- })->where($where)->where(function ($query) {
- $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
- })->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')->orderBy('predetermined_end', 'desc')->first();
- }
- public function findJobfair($where)
- {
- return $this->model->with(['floorPlan'=>function ($query) {
- $query->orderBy('order_list', 'desc');
- }])->where($where)->where(function ($query) use ($where) {
- $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);
- })->first();
- }
- public function allJobfair($where, $page, $pageCount,$search_type,$key)
- {
- return $this->model->when(get_subsite_id()>0,function($query){
- $query->whereHas('subsite', function ($query) {
- $query->where('subsite_id', get_subsite_id());
- });
- })->when($search_type == 'jobs',function($query) use ($key){
- $query->whereHas('putJobs',function($query) use ($key){
- $query->whereHas('jobs',function($query) use ($key){
- $query->where('jobs_name','like', '%'.$key.'%')->where('audit',1)->where('display',1);
- })->whereHas('jobfair_company',function ($query){
- $query->where('audit',1);
- });
- });
- })->when($search_type == 'company',function($query) use ($key){
- $query->whereHas('jobfairCompany',function($query) use ($key){
- $query->whereHas('companys',function($query) use ($key){
- $query->where('companyname','like', '%'.$key.'%');
- });
- });
- })
- ->where($where)->Where(function ($query) use ($where) {
- $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
- })->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')->orderBy('predetermined_end', 'desc')->offset($page*$pageCount)->limit($pageCount)->get();
- }
- public function Aioalljobfair($page)
- {
- return $this->model->when(get_subsite_id()>0,function($query){
- $query->whereHas('subsite', function ($query) {
- $query->where('subsite_id', get_subsite_id());
- });
- })->Where(function ($query) {
- $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
- })->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')->orderBy('predetermined_end', 'desc')->paginate($page);
- }
- public function findOne($where)
- {
- return $this->model->with('jobfairCompany')->where($where)->where(function ($query) use ($where) {
- $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);
- })->first();
- }
- public function getJobfairList($com_id)
- {
- return $this->model->with(['jobfairCompany'=>function ($query) use ($com_id){
- $query->where('company_id',$com_id);
- }])->where(function ($query) {
- $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);
- })->where(['display'=>1])->orderBy('predetermined_status', 'asc')->orderBy('ordid', 'desc')
- ->orderBy('predetermined_end', 'desc')->paginate(10);
- }
- public function getBlacklistCompany()
- {
- return $this->model->whereHas('jobfairCom',function ($query) {
- $query->where('type', 0)->where('black_status', 0)->where('audit', 1)->where('created_at', '>', date('Y-m-d H:i:s', strtotime('-30 days')));
- })->where('holddate_end', '<', time())->get();
- }
- //允许预定的招聘会
- public function getJobfairOpen()
- {
- return $this->model->where('predetermined_status', 1)->get();
- }
- //正在开启的招聘会
- public function getOpenJobfair($where = [])
- {
- return $this->model->where($where)->get();
- }
- //正在开启的招聘会
- public function getOneOpenJobfair($where = [])
- {
- return $this->model->where($where)->first();
- }
- //企业预定开启的招聘会
- public function getCompanyOpenJobfair($where = [],$company_where)
- {
- return $this->model->whereHas('jobfairCompany',function ($query) use ($company_where) {
- $query->where($company_where);
- })->where($where)->get();
- }
- //正在开启的招聘会
- public function getOneCompanyOpenJobfair($where = [],$company_where)
- {
- return $this->model->whereHas('jobfairCompany',function ($query) use ($company_where) {
- $query->where($company_where);
- })->where($where)->first();
- }
- public function getJobfairs($where = array(), $order = array(), $limit = '')
- {
- $rst = $this->model->when(get_subsite_id()>0,function($query){
- $query->whereHas('subsite', function ($query) {
- $query->where('subsite_id', get_subsite_id());
- });
- })->where($where)->where(function ($query) {
- $query->where('showendtime', 0)->orWhere('showendtime', '>=', time());
- });
- if ($order) {
- if (is_array($order)) {
- foreach ($order as $k => $v) {
- $rst->orderBy($k, $v);
- }
- } else {
- $rst->orderbyRaw($order);
- }
- }
- if ($limit) {
- $rst->limit($limit);
- }
- return $rst->get();
- }
- public function getJobfairNum($where)
- {
- return $this->model->where($where)->count();
- }
- public function getStatisticsJobfairs($where)
- {
- return $this->model->withTrashed()->where($where)->get();
- }
- }
|