|
@@ -1,4 +1,5 @@
|
|
|
<?php
|
|
|
+
|
|
|
namespace App\Services\Common;
|
|
|
|
|
|
use App\Exceptions\ResponseException;
|
|
@@ -44,50 +45,52 @@ class SearchService
|
|
|
//首页知名企业
|
|
|
public function searchSeatmealCompanies($params, $type = '')
|
|
|
{
|
|
|
- $list = array();
|
|
|
- $where = array(
|
|
|
- array('utype', '=', 1),
|
|
|
- array('user_status', '=', 1)
|
|
|
- );
|
|
|
+ $list = [];
|
|
|
+ $where = [
|
|
|
+ ['utype', '=', 1],
|
|
|
+ ['user_status', '=', 1],
|
|
|
+ ];
|
|
|
|
|
|
if ($type == '') {
|
|
|
- $where[] = array('job_audit_num','>',0);
|
|
|
- if (config('aix.companyset.comset.show_set.jobs_display')==1) {
|
|
|
- $where[] = array('audit','=',1);
|
|
|
+ $where[] = ['job_audit_num', '>', 0];
|
|
|
+ if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
|
|
|
+ $where[] = ['audit', '=', 1];
|
|
|
//$where[] = array('job_audit_num','>',0);
|
|
|
} else {
|
|
|
- $where[] = array('audit','<>',3);
|
|
|
+ $where[] = ['audit', '<>', 3];
|
|
|
//$where[] = array('job_sum_num','>',0);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
if (array_has($params, 'seatmeal')) {
|
|
|
- $where[] = array('setmeal_id','>',$params['seatmeal']);
|
|
|
- $where[] = array('members_setmeal.expire','=',0);
|
|
|
+ $where[] = ['setmeal_id', '>', $params['seatmeal']];
|
|
|
+ $where[] = ['members_setmeal.expire', '=', 0];
|
|
|
}
|
|
|
|
|
|
- $where[] = array('subsite_ids','=',get_subsite_id());
|
|
|
+ $where[] = ['subsite_ids', '=', get_subsite_id()];
|
|
|
if (array_has($params, 'id')) {
|
|
|
- $where[] = array('id','in',$params['id']);
|
|
|
+ $where[] = ['id', 'in', $params['id']];
|
|
|
}
|
|
|
- $order_by = array('job_new_refresh'=>'desc');
|
|
|
- $limit = '';
|
|
|
+ $order_by = ['job_new_refresh' => 'desc'];
|
|
|
+ $limit = '';
|
|
|
if (array_has($params, 'size')) {
|
|
|
$limit = $params['size'];
|
|
|
}
|
|
|
- $callback = function ($query) {
|
|
|
- $query->with(['job'=>function ($query) {
|
|
|
- $job_count_map = array(array('valid','=',1),array('display','=',1));
|
|
|
- if (config('aix.companyset.comset.show_set.jobs_display')==1) {
|
|
|
- $job_count_map[] = array('audit','=','1');
|
|
|
+ $callback = function ($query) {
|
|
|
+ $query->with(['job' => function ($query) {
|
|
|
+ $job_count_map = [['valid', '=', 1], ['display', '=', 1]];
|
|
|
+ if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
|
|
|
+ $job_count_map[] = ['audit', '=', '1'];
|
|
|
} else {
|
|
|
- $job_count_map[] = array('audit','<>','3');
|
|
|
+ $job_count_map[] = ['audit', '<>', '3'];
|
|
|
}
|
|
|
- $query->where($job_count_map)->whereHas('subsites', function ($query) { $query->where('subsite_id', get_subsite_id());})->orderBy('refresh_time', 'DESC');
|
|
|
+ $query->where($job_count_map)->whereHas('subsites', function ($query) {
|
|
|
+ $query->where('subsite_id', get_subsite_id());
|
|
|
+ })->orderBy('refresh_time', 'DESC');
|
|
|
}]);
|
|
|
};
|
|
|
$recommend_job_lists = $this->search('Company', $where, $order_by, '', $limit, '', $callback, true);
|
|
|
- if ($recommend_job_lists->total()>0) {
|
|
|
+ if ($recommend_job_lists->total() > 0) {
|
|
|
$list = $this->companyService->dealSetmealCompany($recommend_job_lists->items(), $params);
|
|
|
}
|
|
|
return $list;
|
|
@@ -96,33 +99,33 @@ class SearchService
|
|
|
//紧急招聘
|
|
|
public function searchEmergencyJobs($limit = 10)
|
|
|
{
|
|
|
- $emergency_jobs = array();
|
|
|
- $emergency_where = array(
|
|
|
- array('valid','=','1'),
|
|
|
- array('emergency','=','1'),
|
|
|
- array('display','=',1),
|
|
|
- array('subsite_ids', '=', get_subsite_id())
|
|
|
- );
|
|
|
- if (config('aix.companyset.comset.show_set.jobs_display')==1) {
|
|
|
- $emergency_where[] = array('audit','=',1);
|
|
|
+ $emergency_jobs = [];
|
|
|
+ $emergency_where = [
|
|
|
+ ['valid', '=', '1'],
|
|
|
+ ['emergency', '=', '1'],
|
|
|
+ ['display', '=', 1],
|
|
|
+ ['subsite_ids', '=', get_subsite_id()],
|
|
|
+ ];
|
|
|
+ if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
|
|
|
+ $emergency_where[] = ['audit', '=', 1];
|
|
|
} else {
|
|
|
- $emergency_where[] = array('audit','<>',3);
|
|
|
+ $emergency_where[] = ['audit', '<>', 3];
|
|
|
}
|
|
|
$emergency_job_list = $this->search('Job', $emergency_where, 'stime', '', $limit, 1);
|
|
|
- if ($emergency_job_list->total()>0) {
|
|
|
+ if ($emergency_job_list->total() > 0) {
|
|
|
$emergency_jobs = $this->jobsService->dealjobList($emergency_job_list->items(), $limit);
|
|
|
}
|
|
|
return $emergency_jobs;
|
|
|
}
|
|
|
|
|
|
//推荐职位
|
|
|
- public function searchRecommendJobs($limit = 10, $user = array(), $type = '')
|
|
|
+ public function searchRecommendJobs($limit = 10, $user = [], $type = '')
|
|
|
{
|
|
|
- $recommend_job_items = array();
|
|
|
- $recommend_where = $this->jobsService->getRecommendWhere($user);
|
|
|
- $recommend_order = $this->jobsService->getRecommendOrder($user);
|
|
|
+ $recommend_job_items = [];
|
|
|
+ $recommend_where = $this->jobsService->getRecommendWhere($user);
|
|
|
+ $recommend_order = $this->jobsService->getRecommendOrder($user);
|
|
|
if (!$user || ($user && $user->utype == 1)) {
|
|
|
- $recommend_order = array('stime'=>'desc','refresh_time'=> 'desc');
|
|
|
+ $recommend_order = ['stime' => 'desc', 'refresh_time' => 'desc'];
|
|
|
}
|
|
|
|
|
|
if ($recommend_where) {
|
|
@@ -137,17 +140,17 @@ class SearchService
|
|
|
if ($type == 'show_other') {
|
|
|
//判断职位数量是否足够页面需求,不满足时已击量很高、置顶、刷新靠前的职位补足(职位不能重复)
|
|
|
if ($recommend_job_lists && $recommend_job_lists->total() >= $limit) {
|
|
|
- $recommend_job_items = $this->jobsService->dealjobFilelds($recommend_job_lists->items(), array(), $limit);
|
|
|
+ $recommend_job_items = $this->jobsService->dealjobFilelds($recommend_job_lists->items(), [], $limit);
|
|
|
} else {
|
|
|
- $jids = array();
|
|
|
+ $jids = [];
|
|
|
if ($recommend_job_lists) {
|
|
|
$jids = $recommend_job_lists->pluck('id')->toArray();
|
|
|
}
|
|
|
$click_jobs_rst = $this->getClickJobs($limit);
|
|
|
- if ($click_jobs_rst->total()>0) {
|
|
|
+ if ($click_jobs_rst->total() > 0) {
|
|
|
$click_jobs = $click_jobs_rst->items();
|
|
|
} else {
|
|
|
- $click_jobs = array();
|
|
|
+ $click_jobs = [];
|
|
|
}
|
|
|
if ($click_jobs && $jids) {
|
|
|
foreach ($click_jobs as $k => $v) {
|
|
@@ -156,75 +159,78 @@ class SearchService
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- $recommend_jobs = $recommend_job_lists?$recommend_job_lists->items():array();
|
|
|
- $recommend_total = $recommend_job_lists?$recommend_job_lists->total():0;
|
|
|
- $need_jobs = array_slice($click_jobs, 0, $limit - $recommend_total);
|
|
|
- $all_jobs = array_merge($recommend_jobs, $need_jobs);
|
|
|
+ $recommend_jobs = $recommend_job_lists ? $recommend_job_lists->items() : [];
|
|
|
+ $recommend_total = $recommend_job_lists ? $recommend_job_lists->total() : 0;
|
|
|
+ $need_jobs = array_slice($click_jobs, 0, $limit - $recommend_total);
|
|
|
+ $all_jobs = array_merge($recommend_jobs, $need_jobs);
|
|
|
$recommend_job_items = array_slice($all_jobs, 0, $limit);
|
|
|
$recommend_job_items = $this->jobsService->dealjobFilelds($recommend_job_items);
|
|
|
}
|
|
|
} elseif ($type == 'show_page') {
|
|
|
return $recommend_job_lists;
|
|
|
} else {
|
|
|
- if ($recommend_job_lists && $recommend_job_lists->total()>0) {
|
|
|
- $recommend_job_items = $this->jobsService->dealjobFilelds($recommend_job_lists->items(), array(), $limit);
|
|
|
+ if ($recommend_job_lists && $recommend_job_lists->total() > 0) {
|
|
|
+ $recommend_job_items = $this->jobsService->dealjobFilelds($recommend_job_lists->items(), [], $limit);
|
|
|
}
|
|
|
}
|
|
|
return $recommend_job_items;
|
|
|
}
|
|
|
+
|
|
|
//获取点击量高的职位
|
|
|
public function getClickJobs($limit = 50)
|
|
|
{
|
|
|
- $where[] = array('valid','=',1);
|
|
|
- $where[] = array('display','=',1);
|
|
|
- if (config('aix.companyset.comset.show_set.jobs_display')==1) {
|
|
|
- $where[] = array('audit','=',1);
|
|
|
+ $where[] = ['valid', '=', 1];
|
|
|
+ $where[] = ['display', '=', 1];
|
|
|
+ if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
|
|
|
+ $where[] = ['audit', '=', 1];
|
|
|
} else {
|
|
|
- $where[] = array('audit','<>',3);
|
|
|
+ $where[] = ['audit', '<>', 3];
|
|
|
}
|
|
|
- $where[] = array('subsite_ids','=',get_subsite_id());
|
|
|
- $order = array('click'=>'desc','stime'=>'desc','refresh_time'=> 'desc');
|
|
|
+ $where[] = ['subsite_ids', '=', get_subsite_id()];
|
|
|
+ $order = ['click' => 'desc', 'stime' => 'desc', 'refresh_time' => 'desc'];
|
|
|
return $this->search('Job', $where, $order, '', $limit);
|
|
|
}
|
|
|
+
|
|
|
//获取点击量高的简历
|
|
|
- public function getClickResumes($order_by, $job = array(), $need_limit = 50)
|
|
|
+ public function getClickResumes($order_by, $job = [], $need_limit = 50)
|
|
|
{
|
|
|
- $click_where = $this->companyService->getRecommendResumeWhere($job);
|
|
|
+ $click_where = $this->companyService->getRecommendResumeWhere($job);
|
|
|
$click_resumes = $this->search('Resume', $click_where, $order_by, '', $need_limit);
|
|
|
$click_resumes = $click_resumes->items();
|
|
|
return $click_resumes;
|
|
|
}
|
|
|
+
|
|
|
//照片简历
|
|
|
- public function searchPhotoResumes($limit = 10, $user = array())
|
|
|
+ public function searchPhotoResumes($limit = 10, $user = [])
|
|
|
{
|
|
|
- $list = array();
|
|
|
- $order_by = array('stime'=>'desc','click'=>'desc', 'updated_at'=>'desc');
|
|
|
+ $list = [];
|
|
|
+ $order_by = ['stime' => 'desc', 'click' => 'desc', 'updated_at' => 'desc'];
|
|
|
//获取点击量高的简历
|
|
|
- $click_where = $this->companyService->getRecommendResumeWhere(array());
|
|
|
+ $click_where = $this->companyService->getRecommendResumeWhere([]);
|
|
|
//添加照片过滤
|
|
|
- $click_where[] = array('photo', '=',1);
|
|
|
- $click_where[] = array('member_infos.display_images', '=',1);
|
|
|
- if (config('aix.personal_set.per_set.show_set.resume_img_display')==1) {
|
|
|
- $click_where[] = array('photo_audit', '=',2);
|
|
|
+ $click_where[] = ['photo', '=', 1];
|
|
|
+ $click_where[] = ['member_infos.display_images', '=', 1];
|
|
|
+ if (config('aix.personal_set.per_set.show_set.resume_img_display') == 1) {
|
|
|
+ $click_where[] = ['photo_audit', '=', 2];
|
|
|
} else {
|
|
|
- $click_where[] = array('photo_audit', '<>',0);
|
|
|
+ $click_where[] = ['photo_audit', '<>', 0];
|
|
|
}
|
|
|
- $click_rst = $this->search('Resume', $click_where, $order_by, '', $limit);
|
|
|
+ $click_rst = $this->search('Resume', $click_where, $order_by, '', $limit);
|
|
|
$click_resumes = $click_rst->items();
|
|
|
//企业用户 - 匹配置顶、刷新靠前的职位
|
|
|
if ($user && $user->utype == 1) {
|
|
|
//判断是否有可以匹配的职位
|
|
|
$where = $this->companyService->getRecommendWhere($user);
|
|
|
if ($where) {
|
|
|
- $where['and'][] = array('photo', '=',1);
|
|
|
- if (config('aix.personal_set.per_set.show_set.resume_img_display')==1) {
|
|
|
- $where['and'][] = array('photo_audit', '=',2);
|
|
|
+ $where['and'][] = ['photo', '=', 1];
|
|
|
+ if (config('aix.personal_set.per_set.show_set.resume_img_display') == 1) {
|
|
|
+ $where['and'][] = ['photo_audit', '=', 2];
|
|
|
} else {
|
|
|
- $where['and'][] = array('photo_audit', '<>',0);
|
|
|
+ $where['and'][] = ['photo_audit', '<>', 0];
|
|
|
}
|
|
|
- $where['and'][] = array('member_infos.display_images', '=',1);
|
|
|
+ $where['and'][] = ['member_infos.display_images', '=', 1];
|
|
|
$recommend_resume_lists = $this->getRecommends($user, 'Resume', $where, $order_by, '', $limit);
|
|
|
- $rids = $recommend_resume_lists->pluck('id')->toArray();
|
|
|
+ $rids = $recommend_resume_lists->pluck('id')->toArray();
|
|
|
if ($recommend_resume_lists->total() >= $limit) {
|
|
|
$list = array_slice($recommend_resume_lists->items(), 0, $limit);
|
|
|
} else {
|
|
@@ -237,10 +243,10 @@ class SearchService
|
|
|
}
|
|
|
}
|
|
|
$recommend_resumes = $recommend_resume_lists->items();
|
|
|
- $recommend_total = $recommend_resume_lists->total();
|
|
|
- $need_resumes = array_slice($click_resumes, 0, $limit - $recommend_total);
|
|
|
- $all_resumes = array_merge($recommend_resumes, $need_resumes);
|
|
|
- $list = array_slice($all_resumes, 0, $limit);
|
|
|
+ $recommend_total = $recommend_resume_lists->total();
|
|
|
+ $need_resumes = array_slice($click_resumes, 0, $limit - $recommend_total);
|
|
|
+ $all_resumes = array_merge($recommend_resumes, $need_resumes);
|
|
|
+ $list = array_slice($all_resumes, 0, $limit);
|
|
|
}
|
|
|
} else {
|
|
|
$list = array_slice($click_resumes, 0, $limit);
|
|
@@ -252,47 +258,48 @@ class SearchService
|
|
|
if ($list) {
|
|
|
$photo_resumes = $this->resumeService->dealResumeFields($list);
|
|
|
} else {
|
|
|
- $photo_resumes = array();
|
|
|
+ $photo_resumes = [];
|
|
|
}
|
|
|
return $photo_resumes;
|
|
|
}
|
|
|
+
|
|
|
//最新简历
|
|
|
- public function searchNewResumes($limit = 10, $user = array())
|
|
|
+ public function searchNewResumes($limit = 10, $user = [])
|
|
|
{
|
|
|
- $new_resumes = array();
|
|
|
- $where = array();
|
|
|
- $where[] = array('display','=',1);
|
|
|
- if (config('aix.personal_set.per_set.show_set.resume_display')=='1') {
|
|
|
- $where[] = array('audit','=','2');
|
|
|
+ $new_resumes = [];
|
|
|
+ $where = [];
|
|
|
+ $where[] = ['display', '=', 1];
|
|
|
+ if (config('aix.personal_set.per_set.show_set.resume_display') == '1') {
|
|
|
+ $where[] = ['audit', '=', '2'];
|
|
|
} else {
|
|
|
- $where[] = array('audit','<>','0');
|
|
|
+ $where[] = ['audit', '<>', '0'];
|
|
|
}
|
|
|
- $where[] = array('subsite_ids','=',get_subsite_id());
|
|
|
- $order_by = array('stick'=>'desc','updated_at'=>'desc');
|
|
|
- $list = $this->search('Resume', $where, $order_by, '', $limit);
|
|
|
- if ($list->total()>0) {
|
|
|
+ $where[] = ['subsite_ids', '=', get_subsite_id()];
|
|
|
+ $order_by = ['stick' => 'desc', 'updated_at' => 'desc'];
|
|
|
+ $list = $this->search('Resume', $where, $order_by, '', $limit);
|
|
|
+ if ($list->total() > 0) {
|
|
|
$new_resumes = $this->resumeService->dealResumeFields($list->items());
|
|
|
}
|
|
|
return $new_resumes;
|
|
|
}
|
|
|
|
|
|
//同行业职位
|
|
|
- public function searchCateJobs($job, $limit = 10, $user = array())
|
|
|
+ public function searchCateJobs($job, $limit = 10, $user = [])
|
|
|
{
|
|
|
- $cate_jobs = array();
|
|
|
- $cate_job_where[] = array('intention_jobs_id','=',$job->jobcategory_id);
|
|
|
- $cate_job_where[] = array('id','<>',$job->id);
|
|
|
- if (config('aix.companyset.comset.show_set.jobs_display')==1) {
|
|
|
- $cate_job_where[] = array('audit','=',1);
|
|
|
+ $cate_jobs = [];
|
|
|
+ $cate_job_where[] = ['intention_jobs_id', '=', $job->jobcategory_id];
|
|
|
+ $cate_job_where[] = ['id', '<>', $job->id];
|
|
|
+ if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
|
|
|
+ $cate_job_where[] = ['audit', '=', 1];
|
|
|
} else {
|
|
|
- $cate_job_where[] = array('audit','<>',3);
|
|
|
+ $cate_job_where[] = ['audit', '<>', 3];
|
|
|
}
|
|
|
- $cate_job_where[] = array('display','=',1);
|
|
|
- $cate_job_where[] = array('valid','=',1);
|
|
|
- $cate_job_where[] = array('subsite_ids','=',get_subsite_id());
|
|
|
+ $cate_job_where[] = ['display', '=', 1];
|
|
|
+ $cate_job_where[] = ['valid', '=', 1];
|
|
|
+ $cate_job_where[] = ['subsite_ids', '=', get_subsite_id()];
|
|
|
|
|
|
$cate_job_list = $this->search('Job', $cate_job_where, 'stime', '');
|
|
|
- if ($cate_job_list->total()>0) {
|
|
|
+ if ($cate_job_list->total() > 0) {
|
|
|
$cate_jobs = $this->jobsService->dealjobList($cate_job_list->items(), 6);
|
|
|
}
|
|
|
return $cate_jobs;
|
|
@@ -301,33 +308,33 @@ class SearchService
|
|
|
//最新招聘职位
|
|
|
public function searchNewJobs($limit = 20, $page = '')
|
|
|
{
|
|
|
- $where[] = array('valid','=',1);
|
|
|
- $where[] = array('display','=',1);
|
|
|
- if (config('aix.companyset.comset.show_set.jobs_display')==1) {
|
|
|
- $where[] = array('audit','=',1);
|
|
|
+ $where[] = ['valid', '=', 1];
|
|
|
+ $where[] = ['display', '=', 1];
|
|
|
+ if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
|
|
|
+ $where[] = ['audit', '=', 1];
|
|
|
} else {
|
|
|
- $where[] = array('audit','<>',3);
|
|
|
+ $where[] = ['audit', '<>', 3];
|
|
|
}
|
|
|
- $where[] = array('subsite_ids','=',get_subsite_id());
|
|
|
- $order = array('refresh_time'=>'desc');
|
|
|
+ $where[] = ['subsite_ids', '=', get_subsite_id()];
|
|
|
+ $order = ['refresh_time' => 'desc'];
|
|
|
$new_job_lists = $this->search('Job', $where, $order, '', $limit, $page);
|
|
|
- $list = array();
|
|
|
- if ($new_job_lists->total()>0) {
|
|
|
- $list = $this->jobsService->dealjobFilelds($new_job_lists->items(), array(), $limit);
|
|
|
+ $list = [];
|
|
|
+ if ($new_job_lists->total() > 0) {
|
|
|
+ $list = $this->jobsService->dealjobFilelds($new_job_lists->items(), [], $limit);
|
|
|
}
|
|
|
return $list;
|
|
|
}
|
|
|
|
|
|
- public function getRecommends($user, $model, $where, $order_by, $search_key = '', $limit = 10, $page = '', $callback = null)
|
|
|
+ public function getRecommends($user, $model, $where, $order_by, $search_key = '', $limit = 10, $page = '', $callback = null)
|
|
|
{
|
|
|
if ($model == 'Resume') {
|
|
|
- $list=Resume::search($search_key);
|
|
|
+ $list = Resume::search($search_key);
|
|
|
if ($callback) {
|
|
|
$list->query($callback);
|
|
|
}
|
|
|
if ($where) {
|
|
|
- $and_where = array();
|
|
|
- $or_where = array();
|
|
|
+ $and_where = [];
|
|
|
+ $or_where = [];
|
|
|
if (array_has($where, 'or')) {
|
|
|
$or_where = $where['or'];
|
|
|
}
|
|
@@ -336,9 +343,9 @@ class SearchService
|
|
|
}
|
|
|
if ($and_where) {
|
|
|
$wage_max = 0;
|
|
|
- $wage_min=0;
|
|
|
+ $wage_min = 0;
|
|
|
foreach ($and_where as $k => $v) {
|
|
|
- if ($v[1] !='=') {
|
|
|
+ if ($v[1] != '=') {
|
|
|
if ($v[0] == 'birthdate') {
|
|
|
if ($v[1] == '>=') {
|
|
|
$list->whereRange('birthdate', $v[2], null);
|
|
@@ -358,9 +365,9 @@ class SearchService
|
|
|
} elseif ($v[0] == 'audit') {
|
|
|
$list->whereNot('audit', $v[2]);
|
|
|
} elseif ($v[0] == 'wage_max') {
|
|
|
- $wage_max = $v[2]?$v[2]:null;
|
|
|
+ $wage_max = $v[2] ? $v[2] : null;
|
|
|
} elseif ($v[0] == 'wage_min') {
|
|
|
- $wage_min = $v[2]?$v[2]:null;
|
|
|
+ $wage_min = $v[2] ? $v[2] : null;
|
|
|
} else {
|
|
|
if ($v[1] == '<>') {
|
|
|
$list->whereNot($v[0], $v[2]);
|
|
@@ -379,7 +386,7 @@ class SearchService
|
|
|
$wage_min = null;
|
|
|
$wage_max = null;
|
|
|
foreach ($val as $k => $v) {
|
|
|
- if ($v[1] !='=') {
|
|
|
+ if ($v[1] != '=') {
|
|
|
if ($v[0] == 'birthdate') {
|
|
|
if ($v[1] == '>=') {
|
|
|
$subBuilder->whereRange('birthdate', $v[2], null);
|
|
@@ -391,9 +398,9 @@ class SearchService
|
|
|
} elseif ($v[0] == 'audit') {
|
|
|
$subBuilder->whereNot('audit', $v[2]);
|
|
|
} elseif ($v[0] == 'wage_max') {
|
|
|
- $wage_max = $v[2]?$v[2]:null;
|
|
|
+ $wage_max = $v[2] ? $v[2] : null;
|
|
|
} elseif ($v[0] == 'wage_min') {
|
|
|
- $wage_min = $v[2]?$v[2]:null;
|
|
|
+ $wage_min = $v[2] ? $v[2] : null;
|
|
|
} else {
|
|
|
if ($v[1] == '<>') {
|
|
|
$subBuilder->whereNot($v[0], $v[2]);
|
|
@@ -405,7 +412,7 @@ class SearchService
|
|
|
}
|
|
|
|
|
|
if ($wage_max && $wage_min) {
|
|
|
- $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
+ $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereOr(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereRange('wage_min', $wage_min, null)
|
|
|
->whereRange('wage_max', null, $wage_max)
|
|
@@ -415,12 +422,12 @@ class SearchService
|
|
|
});
|
|
|
|
|
|
} elseif ($wage_min) {
|
|
|
- $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
+ $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
$subBuilder->whereOrRange('wage_min', $wage_min, null);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
|
} elseif ($wage_max) {
|
|
|
- $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
+ $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
$subBuilder->whereOrRange('wage_max', null, $wage_max);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
@@ -432,12 +439,12 @@ class SearchService
|
|
|
}
|
|
|
|
|
|
//添加过期时间过滤
|
|
|
- $list->where(function (SubBuilder $subBuilder) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) {
|
|
|
$subBuilder->whereOr('expires', 0)->whereOrRange('expires', time(), null);
|
|
|
});
|
|
|
|
|
|
- if ($user && $user->utype==1) {
|
|
|
- $list->whereNotIn('person_shield_companys', array($user->id));
|
|
|
+ if ($user && $user->utype == 1) {
|
|
|
+ $list->whereNotIn('person_shield_companys', [$user->id]);
|
|
|
}
|
|
|
if (is_array($order_by)) {
|
|
|
foreach ($order_by as $k => $v) {
|
|
@@ -454,13 +461,13 @@ class SearchService
|
|
|
|
|
|
|
|
|
} elseif ($model == 'Job') {
|
|
|
- $list=Jobs::search($search_key);
|
|
|
+ $list = Jobs::search($search_key);
|
|
|
if ($callback) {
|
|
|
$list->query($callback);
|
|
|
}
|
|
|
if ($where) {
|
|
|
- $and_where = array();
|
|
|
- $or_where = array();
|
|
|
+ $and_where = [];
|
|
|
+ $or_where = [];
|
|
|
if (array_has($where, 'or')) {
|
|
|
$or_where = $where['or'];
|
|
|
}
|
|
@@ -470,7 +477,7 @@ class SearchService
|
|
|
|
|
|
if ($and_where) {
|
|
|
foreach ($and_where as $k => $v) {
|
|
|
- if ($v[1] !='=') {
|
|
|
+ if ($v[1] != '=') {
|
|
|
if ($v[0] == 'audit') {
|
|
|
$list->whereNot('audit', $v[2]);
|
|
|
} elseif ($v[0] == 'setmeal_id') {
|
|
@@ -509,7 +516,7 @@ class SearchService
|
|
|
$wage_min = null;
|
|
|
$wage_max = null;
|
|
|
foreach ($val as $k => $v) {
|
|
|
- if ($v[1] !='=') {
|
|
|
+ if ($v[1] != '=') {
|
|
|
if ($v[0] == 'audit') {
|
|
|
$subBuilder->whereNot('audit', $v[2]);
|
|
|
} elseif ($v[0] == 'setmeal_id') {
|
|
@@ -521,9 +528,9 @@ class SearchService
|
|
|
} elseif ($v[0] == 'updated_at') {
|
|
|
$subBuilder->whereRange('updated_at', $v[2], null, false);
|
|
|
} elseif ($v[0] == 'wage_max') {
|
|
|
- $wage_max = $v[2]?$v[2]:null;
|
|
|
+ $wage_max = $v[2] ? $v[2] : null;
|
|
|
} elseif ($v[0] == 'wage_min') {
|
|
|
- $wage_min = $v[2]?$v[2]:null;
|
|
|
+ $wage_min = $v[2] ? $v[2] : null;
|
|
|
} else {
|
|
|
if ($v[1] == 'in') {
|
|
|
$subBuilder->whereIn($v[0], $v[2]);
|
|
@@ -545,7 +552,7 @@ class SearchService
|
|
|
}
|
|
|
|
|
|
if ($wage_max && $wage_min) {
|
|
|
- $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
+ $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereOr(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereRange('wage_min', $wage_min, null)
|
|
|
->whereRange('wage_max', null, $wage_max)
|
|
@@ -555,12 +562,12 @@ class SearchService
|
|
|
});
|
|
|
|
|
|
} elseif ($wage_min) {
|
|
|
- $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
+ $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
$subBuilder->whereOrRange('wage_min', $wage_min, null);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
|
} elseif ($wage_max) {
|
|
|
- $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
+ $subBuilder->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
$subBuilder->whereOrRange('wage_max', null, $wage_max);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
@@ -590,10 +597,10 @@ class SearchService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public function search($model, $where, $order_by, $search_key = '', $limit = 10, $page = '', $callback = null, $compan_order =false)
|
|
|
+ public function search($model, $where, $order_by, $search_key = '', $limit = 10, $page = '', $callback = null, $compan_order = false)
|
|
|
{
|
|
|
if ($model == 'Resume') {
|
|
|
- $list=Resume::search($search_key);
|
|
|
+ $list = Resume::search($search_key);
|
|
|
if ($callback) {
|
|
|
$list->query($callback);
|
|
|
}
|
|
@@ -601,7 +608,7 @@ class SearchService
|
|
|
$wage_min = null;
|
|
|
$wage_max = null;
|
|
|
foreach ($where as $k => $v) {
|
|
|
- if ($v[1] !='=') {
|
|
|
+ if ($v[1] != '=') {
|
|
|
if ($v[0] == 'birthdate') {
|
|
|
if ($v[1] == '>=') {
|
|
|
$list->whereRange('birthdate', $v[2], null);
|
|
@@ -613,9 +620,9 @@ class SearchService
|
|
|
} elseif ($v[0] == 'audit') {
|
|
|
$list->whereNot('audit', $v[2]);
|
|
|
} elseif ($v[0] == 'wage_max') {
|
|
|
- $wage_max = $v[2]?$v[2]:null;
|
|
|
+ $wage_max = $v[2] ? $v[2] : null;
|
|
|
} elseif ($v[0] == 'wage_min') {
|
|
|
- $wage_min = $v[2]?$v[2]:null;
|
|
|
+ $wage_min = $v[2] ? $v[2] : null;
|
|
|
} else {
|
|
|
if ($v[1] == 'in') {
|
|
|
$list->whereIn($v[0], $v[2]);
|
|
@@ -627,6 +634,8 @@ class SearchService
|
|
|
$list->whereNot($v[0], $v[2]);
|
|
|
} elseif ($v[1] == 'in') {
|
|
|
$list->whereIn($v[0], $v[2]);
|
|
|
+ } elseif ($v[1] == 'like') {
|
|
|
+ $list->where($v[0], 'like', $v[2]);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -635,7 +644,7 @@ class SearchService
|
|
|
}
|
|
|
//期望薪资过滤
|
|
|
if ($wage_max && $wage_min) {
|
|
|
- $list->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereOr(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereRange('wage_min', $wage_min, null)
|
|
|
->whereRange('wage_max', null, $wage_max)
|
|
@@ -644,12 +653,12 @@ class SearchService
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
|
} elseif ($wage_min) {
|
|
|
- $list->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
$subBuilder->whereOrRange('wage_min', $wage_min, null);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
|
} elseif ($wage_max) {
|
|
|
- $list->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
$subBuilder->whereOrRange('wage_max', null, $wage_max);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
@@ -657,13 +666,13 @@ class SearchService
|
|
|
}
|
|
|
|
|
|
//添加过期时间过滤
|
|
|
- $list->where(function (SubBuilder $subBuilder) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) {
|
|
|
$subBuilder->whereOr('expires', 0)->whereOrRange('expires', time(), null);
|
|
|
});
|
|
|
|
|
|
|
|
|
if (auth('web-company')->check()) {
|
|
|
- $list->whereNotIn('person_shield_companys', array(auth('web-company')->user()->id));
|
|
|
+ $list->whereNotIn('person_shield_companys', [auth('web-company')->user()->id]);
|
|
|
}
|
|
|
if (is_array($order_by)) {
|
|
|
foreach ($order_by as $k => $v) {
|
|
@@ -678,7 +687,7 @@ class SearchService
|
|
|
return $list->paginate($limit);
|
|
|
}
|
|
|
} elseif ($model == 'Job') {
|
|
|
- $list=Jobs::search($search_key);
|
|
|
+ $list = Jobs::search($search_key);
|
|
|
if ($callback) {
|
|
|
$list->query($callback);
|
|
|
}
|
|
@@ -690,26 +699,26 @@ class SearchService
|
|
|
if ($apply && auth('web-member')->check()) {
|
|
|
//获取当前用户一段时间间隔内所有申请记录
|
|
|
$space_time = (integer)config('aix.personal_set.per_set.per_set.apply_job_space');
|
|
|
- if ($space_time >0) {
|
|
|
- $stime = date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-".$space_time." day"))));
|
|
|
- $apply_where = array(array('personal_uid','=',auth('web-member')->user()->id),array('created_at','>=',$stime));
|
|
|
+ if ($space_time > 0) {
|
|
|
+ $stime = date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-" . $space_time . " day"))));
|
|
|
+ $apply_where = [['personal_uid', '=', auth('web-member')->user()->id], ['created_at', '>=', $stime]];
|
|
|
} else {
|
|
|
- $apply_where = array(array('personal_uid','=',auth('web-member')->user()->id));
|
|
|
+ $apply_where = [['personal_uid', '=', auth('web-member')->user()->id]];
|
|
|
}
|
|
|
$rst = $this->personalJobsApplyRepository->getJobsApply($apply_where);
|
|
|
- $ids= $rst->pluck('jobs_id');
|
|
|
+ $ids = $rst->pluck('jobs_id');
|
|
|
if ($ids->isNotEmpty()) {
|
|
|
$list->whereNotIn('id', $ids->toArray());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- $map_filter = array();
|
|
|
- $map_order = array();
|
|
|
- $wage_min = null;
|
|
|
- $wage_max = null;
|
|
|
+ $map_filter = [];
|
|
|
+ $map_order = [];
|
|
|
+ $wage_min = null;
|
|
|
+ $wage_max = null;
|
|
|
foreach ($where as $k => $v) {
|
|
|
- if ($v[1] !='=') {
|
|
|
+ if ($v[1] != '=') {
|
|
|
if ($v[0] == 'audit') {
|
|
|
$list->whereNot('audit', $v[2]);
|
|
|
} elseif ($v[0] == 'setmeal_id') {
|
|
@@ -721,9 +730,9 @@ class SearchService
|
|
|
} elseif ($v[0] == 'updated_at') {
|
|
|
$list->whereRange('updated_at', $v[2], null, false);
|
|
|
} elseif ($v[0] == 'wage_max') {
|
|
|
- $wage_max = $v[2]?$v[2]:null;
|
|
|
+ $wage_max = $v[2] ? $v[2] : null;
|
|
|
} elseif ($v[0] == 'wage_min') {
|
|
|
- $wage_min = $v[2]?$v[2]:null;
|
|
|
+ $wage_min = $v[2] ? $v[2] : null;
|
|
|
} else {
|
|
|
if ($v[1] == 'in') {
|
|
|
$list->whereIn($v[0], $v[2]);
|
|
@@ -743,12 +752,12 @@ class SearchService
|
|
|
} else {
|
|
|
if ($v[0] == 'lng') {
|
|
|
$map_filter['location']['lon'] = $v[2];
|
|
|
- $map_order['lon'] = $v[2];
|
|
|
+ $map_order['lon'] = $v[2];
|
|
|
} elseif ($v[0] == 'lat') {
|
|
|
$map_filter['location']['lat'] = $v[2];
|
|
|
- $map_order['lat'] = $v[2];
|
|
|
+ $map_order['lat'] = $v[2];
|
|
|
} elseif ($v[0] == 'range') {
|
|
|
- $map_filter['distance'] = $v[2].'km';
|
|
|
+ $map_filter['distance'] = $v[2] . 'km';
|
|
|
} else {
|
|
|
$list->where($v[0], $v[2]);
|
|
|
}
|
|
@@ -756,7 +765,7 @@ class SearchService
|
|
|
}
|
|
|
|
|
|
if ($wage_max && $wage_min) {
|
|
|
- $list->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereOr(function (SubBuilder $subBuilder) use ($wage_max, $wage_min) {
|
|
|
$subBuilder->whereRange('wage_min', $wage_min, null)
|
|
|
->whereRange('wage_max', null, $wage_max)
|
|
@@ -765,12 +774,12 @@ class SearchService
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
|
} elseif ($wage_min) {
|
|
|
- $list->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) use ($wage_min) {
|
|
|
$subBuilder->whereOrRange('wage_min', $wage_min, null);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
|
} elseif ($wage_max) {
|
|
|
- $list->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) use ($wage_max) {
|
|
|
$subBuilder->whereOrRange('wage_max', null, $wage_max);
|
|
|
$subBuilder->whereOr('wage', -1);
|
|
|
});
|
|
@@ -783,15 +792,15 @@ class SearchService
|
|
|
$list->whereLocation('location', $map_filter['location']['lat'], $map_filter['location']['lon'], $map_filter['distance']);
|
|
|
}
|
|
|
if ($map_order) {
|
|
|
- $list->orderBy(['location'=>$map_order, 'order'=>'asc', 'unit'=>'km']);
|
|
|
+ $list->orderBy(['location' => $map_order, 'order' => 'asc', 'unit' => 'km']);
|
|
|
}
|
|
|
}
|
|
|
- $list->where(function (SubBuilder $subBuilder) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) {
|
|
|
$subBuilder->where('company.user_status', 1);
|
|
|
});
|
|
|
|
|
|
//过滤企业审核状态
|
|
|
- $list->where(function (SubBuilder $subBuilder) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) {
|
|
|
$subBuilder->where('company.audit', 1);
|
|
|
});
|
|
|
|
|
@@ -812,14 +821,14 @@ class SearchService
|
|
|
return $list->paginate($limit);
|
|
|
}
|
|
|
} elseif ($model == 'Company') {
|
|
|
- $list=Company::search($search_key);
|
|
|
+ $list = Company::search($search_key);
|
|
|
if ($callback) {
|
|
|
$list->query($callback);
|
|
|
}
|
|
|
|
|
|
if ($where) {
|
|
|
foreach ($where as $k => $v) {
|
|
|
- if ($v[1] !='=') {
|
|
|
+ if ($v[1] != '=') {
|
|
|
if ($v[1] == '>') {
|
|
|
$list->whereRange($v[0], $v[2], null, false);
|
|
|
} elseif ($v[1] == '>=') {
|
|
@@ -837,7 +846,7 @@ class SearchService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $list->where(function (SubBuilder $subBuilder) {
|
|
|
+ $list->where(function (SubBuilder $subBuilder) {
|
|
|
$subBuilder->where('audit', 1);
|
|
|
});
|
|
|
|
|
@@ -857,7 +866,7 @@ class SearchService
|
|
|
}
|
|
|
} elseif ($model == 'Shuobo') {
|
|
|
|
|
|
- $list=MemberShuobo::search($search_key);
|
|
|
+ $list = MemberShuobo::search($search_key);
|
|
|
if ($order_by) {
|
|
|
if (is_array($order_by)) {
|
|
|
foreach ($order_by as $k => $v) {
|