| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 | <?php/** * Created by PhpStorm. * User: wuzhenke * Date: 2019/1/24 * Time: 17:29 */namespace App\Repositories\Jobfair;use App\Models\Jobfair\JobfairCompany;use function foo\func;use Illuminate\Support\Facades\DB;use Prettus\Repository\Eloquent\BaseRepository;class JobfairCompanyRepository extends BaseRepository{    public function model()    {        return JobfairCompany::class;    }    public function findPositionCount($positionArr)    {        return $this->model->whereIn('position_id', $positionArr)->get();    }    public function getJobfair($com_id)    {        return $this->model->with(['jobfair'=>function ($query) {            $query->where([['holddate_end', '>', time()]]);        }])->whereHas('jobfair',function ($query){            $query->where([['holddate_end', '>', time()]]);        })->where(['company_id'=>$com_id])->where('audit','<>',3)->get();    }    public function findList($com_id)    {        return $this->model->whereHas('jobfair')->where(['company_id'=>$com_id])->orderby('created_at', 'desc')->paginate(10);    }    public function findCompany($where, $offset = 0, $limit = 10)    {        return $this->model->webJoinFloorplanStand()->whereHas('companys')->with(['jobfair'=>function ($query) {            $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);        },'companys','jobfairPutJob'])            ->selectRaw('jobfair_companys.*')            ->where($where)            ->offset($limit*$offset)            ->limit($limit)//            ->groupBy('company_id')            ->orderByRaw('jobfair_floorplan_stands.sortindex')            ->get();    }    public function findCompany2($where)    {        return $this->model->webJoinFloorplanStand()->with(['jobfair'=>function ($query) {            $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);        },'companys'])            ->selectRaw('jobfair_companys.*')            ->where($where)//            ->groupBy('company_id')            ->orderByRaw('jobfair_floorplan_stands.sortindex')            ->paginate(20);    }    public function aioFindCompany($where, $page)    {        return $this->model->with(['jobfair'=>function ($query) {            $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);        }])->whereHas('companys')->selectRaw('*,group_concat(position) as position_arr,group_concat(id) as id_arr')->where($where)->groupBy('company_id')->paginate($page);    }    public function findCom($where)    {        return $this->model->with(['companys','jobfairPutJob'=>function($query){            $query->with('jobs');        }])->where($where)->first();    }    public function findComApi($where)    {        return $this->model->with(['companys'=>function($query){            $query->select('id','companyname','short_name','address');        },'jobfairPutJob'=>function($query){            $query->with('jobs');        }])->where($where)->first();    }    public function findOneCom($where)    {        return $this->model->with(['companys','jobfairPutJob'=>function($query){            $query->with('jobs');        }])->where($where)->selectRaw('*,group_concat(position) as position_arr,group_concat(id) as id_arr')->groupBy('company_id')->first();    }    public function getComList($where)    {        return $this->model->where($where)->select(['company_id'])->groupBy('company_id')->get();    }    /**     * @param $where     * @param $keyinput     * @return mixed     */    public function findJob($where)    {        return $this->model->with(['jobfair'=>function ($query) {            $query->where('showendtime', '>=', time())->orWhere('showendtime', 0);        }])->with('companys')->where($where)->get();    }    public function getManyBlackCompany()    {        return $this->model->whereHas('jobfair', function ($query) {            $query->where('holddate_end', '<', time());        })->where('audit', 1)->whereIn('type', [1,2,3])->where('black_status', 0)            ->where('created_at', '>', date('Y-m-d H:i:s', strtotime('-30 days')))            ->selectRaw('count(*) as count,company_id')->groupBy('company_id')->get();    }    public function getBlacklistCompany()    {        return $this->model->whereHas('jobfair', function ($query) {            $query->where('holddate_end', '<', time());        })->where('type', 0)->where('black_status', 0)->where('audit', 1)            ->where('created_at', '>', date('Y-m-d H:i:s', strtotime('-30 days')))->get();    }    public function getComCount($jobfair_id)    {        return $this->model->with('jobfair')->where(['jobfair_id'=>$jobfair_id,'audit'=>1])->groupBy('company_id')->get();    }    public function getCounts($jobfair_id)    {        return $this->model->where(['jobfair_id'=>$jobfair_id,'audit'=>1])->count();    }    public function getOne($where)    {        return $this->model->with('jobfair')->where($where)->first();    }    public function updateInfo($where,$data)    {        return $this->model->where($where)->update($data);    }    //手机端下滑分页    public function getComPage($where,$limit,$page){        return $this->model->with('companys')->where($where)            ->selectRaw('*,group_concat(position) as position_arr')            ->where($where)            ->groupBy('company_id')            ->paginate($limit,['*'],'page',$page);    }    public function getCount($where, $subsite_id)    {        return $this->model->when($subsite_id,function ($query) use($subsite_id) {            $query->whereHas('jobfair', function ($query) use($subsite_id) {                $query->where($subsite_id);            });        })->where($where)->count();    }    /**     * 根据条件删除     * @param $where     * @return mixed     */    public function delJobs($column, $ids)    {        return $this->model->whereIn($column, $ids)->delete();    }    public function getStatisticsCompanyCount($where, $whereIn = array())    {        $res = $this->model->where($where);        if ($whereIn) {            foreach ($whereIn as $k => $v) {                $res->whereIn($k, $v);            }        }        return $res->count();    }    public function findListOption($com_id)    {        return $this->model->whereHas('jobfair')->where(['company_id'=>$com_id])->groupBy('jobfair_id')->orderby('created_at', 'desc')->get();    }    public function getCrmJobfairExhibitors($where, $whereIn = [], $order_by = '', $offset = '', $limit = '')    {        $rst = $this->model->with(['jobfair','jobfairPutJob','jobfairFloorPlanStands', 'companys'])->where($where);        if ($whereIn) {            foreach ($whereIn as $k => $v) {                $rst->whereIn($k, $v);            }        }        if ($order_by) {            $rst->orderByRaw($order_by);        }        if ($offset !='' && $limit!='') {            $rst->offset($offset)->limit($limit);        };        return $rst->get();    }    public function getCrmExhibitorNum($where, $whereIn)    {        $rst = $this->model->where($where);        if ($whereIn) {            foreach ($whereIn as $k => $v) {                $rst->whereIn($k, $v);            }        }        return $rst->count();    }    public function getValue($where,$column)    {        return $this->model->where($where)->value($column);    }    public function getPluck($where,$column)    {        return $this->model->where($where)->pluck($column);    }    public function getJobfaitCompany($where)    {        return $this->model->where($where)->get();    }}
 |