model->create($data);
}
public function findDone($where)
{
return $this->model->where($where)->first();
}
public function searchJob($jobfair_id, $keyword, $company_id, $id)
{
return $this->model->whereHas('jobs',function ($query) use ($company_id,$keyword){
$query->where('audit',1)->where('company_id',$company_id)->where(function ($query) use ($keyword){
$query->where('jobs_name', 'like', '%'.$keyword.'%')->orWhere('company_name', 'like', '%'.$keyword.'%');
});
})->where(['jobfair_id'=> $jobfair_id])->where('exid', $id)->get();
}
public function getOne($where)
{
return $this->model->with(['jobfairs','jobs'])->where($where)->first();
}
public function getJobsCount($jobfair_id)
{
return $this->model->whereHas('jobs',function ($query){
$query->where('audit',1)->where('display',1);
})->whereHas('jobfair_company',function($query){
$query->where('audit',1);
})->where(['jobfair_id'=>$jobfair_id])->count();
}
public function getNeedPerson($jobfair_id)
{
return $this->model->joinJobfairJob()
->where(['jobfair_jobs.audit'=>1,'jobfair_put_jobs.jobfair_id' => $jobfair_id])
->whereHas('jobfair_company',function($query){
$query->where('audit',1);
})
->selectRaw('sum(jobfair_jobs.amount) as sum')
->first();
}
public function getJobfairJob($exid)
{
return $this->model->with('jobs')->whereHas('jobs',function ($query){
$query->where(['audit'=>1,'display'=>1]);
})->where('exid', $exid)->get();
}
public function getExidJobfairJob($exid)
{
return $this->model->with('jobs')->whereHas('jobs',function ($query){
$query->where(['audit'=>1]);
})->where('exid', $exid)->get();
}
public function getJobfairCompanyJob($where1,$where,$limit = '')
{
if($limit){
return $this->model->with(['jobfair_company','jobs'])->whereHas('jobs',function ($query) use ($where){
$query->where($where);
})->where($where1)->orderBy('updated_at','desc')->paginate($limit);
}else{
return $this->model->with(['jobfair_company','jobs'])->whereHas('jobs',function ($query) use ($where){
$query->where($where);
})->where($where1)->orderBy('updated_at','desc')->get();
}
}
public function getJobfairCompanyJobPage($where,$where1,$page){
return $this->model->with(['jobfair_company','jobs'])->has('jobfair_company')->whereHas('jobs',function ($query) use ($where1){
$query->where($where1);
})->where($where)->orderBy('position_id')->paginate($page);
}
public function aioJobfairJob($where, $orwhere, $limit)
{
return $this->model->whereHas('jobfairs', function ($query) {
$query->where([
['holddate_start', '<', strtotime("+60 minute")],
['holddate_end', '>', time()],
['subsite_id',get_subsite_id()]
])
->where(function ($query){
$query->where('showendtime', '>=', time())->orWhere('showendtime', 0);
});
})->whereHas('jobs',function ($query) use ($where,$orwhere) {
$query->whereHas('company')->where($where);
if ($orwhere) {
$query->where($orwhere[0][0], $orwhere[0][1], $orwhere[0][2])->orWhere($orwhere[1][0], $orwhere[1][1], $orwhere[1][2]);
}
})->whereHas('jobfair_company',function ($query) {
$query->where('audit',1);
})->paginate($limit);
}
public function getAudit($id){
return $this->model->with(['jobs'=>function($query){
$query->select('id','audit');
}])->find($id);
}
public function editJob($id)
{
return $this->model->with('jobs')->where('id', $id)->first();
}
/**
* 获取单条职位(在招的)
* @param $data 条件
* @return bool返回值 如果有返回职位数组,否则返回 false
*/
public function getAuditJobsOne($data)
{
$val = $this->model->where($data)->first();
if (!$val) {
return false;
}
// $val->contact= JobfairPutJobsContact::where('pid', $val->id)->first();
$val->deadline_days=($val->deadline-time())>0?"距到期时间还有".sub_day($val->deadline, time())."":"目前已过期";
return $val;
}
//招聘会参展职位
public function jobfairCompanyJob($where,$map1, $limit)
{
return $this->model->with(['jobfair_company','jobfairs','jobs'])->whereHas('jobs',function ($query) use ($map1){
$query->where($map1)->orderByRaw("Field(jobfair_jobs.audit,2,1,3)");
})->where($where)->orderByDesc('created_at')->paginate($limit);
}
public function delJobs($id)
{
return $this->model->whereIn('id', $id)->delete();
}
public function delJobIds($id)
{
return $this->model->whereIn('job_id', $id)->delete();
}
public function delWhereJobs($jobs_id,$where)
{
return $this->model->whereIn('job_id', $jobs_id)->where($where)->delete();
}
public function jobedit($id)
{
return $this->model->where('id', $id)->first();
}
public function getStatisticsJobCount($where, $whereIn)
{
$res = $this->model->where($where);
if ($whereIn) {
foreach ($whereIn as $k => $v) {
$res->whereIn($k, $v);
}
}
return $res->count();
}
public function getStatisticsJobAmount($where, $whereIn)
{
$res = $this->model->where($where);
if ($whereIn) {
foreach ($whereIn as $k => $v) {
$res->whereIn($k, $v);
}
}
return $res->sum('amount');
}
public function getTopClassRand($where, $whereIn, $fields, $group_by, $order_by, $limit)
{
$res = $this->model->selectRaw($fields)->where($where);
if ($whereIn) {
foreach ($whereIn as $k => $v) {
$res->whereIn($k, $v);
}
}
if ($group_by) {
foreach ($group_by as $k => $v) {
$res->groupBy($v);
}
}
if ($order_by) {
$res->orderByRaw($order_by);
}
if ($limit) {
$res->offset(0)->limit($limit);
}
return $res->get();
}
public function getOpenPutJobs($where){
return $this->model->whereHas('jobfairs',function ($query){
$query->where('holddate_end','>=',time());
})->where($where)->get();
}
public function getFairJobIds($where)
{
return $this->model->where($where)->pluck('job_id')->toArray();
}
public function getFairJobInIds($ids)
{
return $this->model->whereIn('id',$ids)->pluck('job_id')->toArray();
}
public function getPluck($where,$column)
{
return $this->model->where($where)->pluck($column);
}
public function getWhere($jobs_where,$put_jobs_where)
{
return $this->model->whereHas('jobs',function ($query) use($jobs_where){
$query->where($jobs_where);
})->where($put_jobs_where)->groupBy('job_id')->get();
}
public function isSync($jobs_where,$put_jobs_where)
{
return $this->model->whereHas('jobs',function ($query) use($jobs_where){
$query->where($jobs_where);
})->where($put_jobs_where)->groupBy('job_id')->first();
}
public function getJobIds($where)
{
return $this->model->whereHas('jobs',function ($query){
$query->where('audit',1);
})->where($where)->pluck('job_id')->toArray();
}
public function destroyArr($del_array)
{
return $this->model->destroy($del_array);
}
public function delList($where,$ids)
{
return $this->model->where($where)->whereIn('job_id',$ids)->delete();
}
}