| 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();    }}
 |