123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * Created by PhpStorm.
- * Date: 2018/11/19
- * Time: 15:30
- */
- namespace App\Repositories;
- use App\Models\JobsSearch;
- use App\Models\Jobs;
- use App\Models\JobsContact;
- use Prettus\Repository\Criteria\RequestCriteria;
- use Prettus\Repository\Eloquent\BaseRepository;
- class JobsSearchRepository extends BaseRepository
- {
- public function model()
- {
- return JobsSearch::class;
- }
- public function jobs()
- {
- return Jobs::class;
- }
- /**
- * Boot up the repository, pushing criteria
- */
- public function boot()
- {
- $this->pushCriteria(app(RequestCriteria::class));
- }
- /*
- 完善职位索引信息
- @ $jobs 职位信息
- @ $pid 职位id
- */
- public function checkJobs($jobs, $pid)
- {
- $pid=intval($pid);
- if ($pid && !$jobs) {
- $jobs=$this->getJobsOne(array('id'=>$pid));
- }
- if (!$jobs) {
- return false;
- }
- //省市,职位,标签
- $d = array();
- if ($jobs->district) {
- $a = array_filter(explode('.', $jobs->district));
- for ($i=count($a)-1; $i>=0; $i--) {
- $d[] = 'city'.implode('_', $a);
- $a[$i] = 0;
- }
- }
- if ($jobs->topclass) {
- $job = $jobs->topclass.'.'.$jobs->category.'.'.$jobs->subclass;
- $a = array_filter(explode('.', $job));
- for ($i=count($a)-1; $i>=0; $i--) {
- $d[] = 'jobs'.implode('_', $a);
- $a[$i] = 0;
- }
- }
- if (implode(',', $jobs->tag)) {
- foreach ($jobs->tag as $key => $val) {
- $d[] = 'tag'.$val;
- }
- }
- $foreach_arr = array(
- 'eme'=>'emergency',
- 'stick'=>'stick',
- 'nat'=>'nature',
- 'sex'=>'sex',
- 'trade'=>'trade',
- 'edu'=>'education',
- 'exp'=>'experience',
- 'neg'=>'negotiable',
- 'set'=>'setmeal_id',
- 'audit'=>'audit',
- 'dis'=>'display',
- 'use'=>'user_status',
- 'robot'=>'robot',
- 'scale'=>'scale',
- 'sub'=>'subsite_id',
- 'lic'=>'company_audit',
- 'ent'=>'is_entrust'
- );
- foreach ($foreach_arr as $key => $val) {
- if (isset($jobs->$val)) {
- $d[] = $key.$jobs->$val;
- }
- }
- if ($jobs->allowance_id) {
- $d[] = 'all1';
- }
- $setsqlarr['key_precise'] = implode(' ', $d);
- $jobs->key_precise = $setsqlarr['key_precise'];
- return $this->jobsIndex($jobs['id'], $jobs);
- }
- //更新职位索引表
- public function jobsIndex($id, $jobs)
- {
- $where = array('id'=>$id);
- if ($id && !$jobs) {
- $jobs = $this->getJobsOne($where);
- }
- if (!$jobs) {
- return false;
- }
- if ($jobs->valid != 1) {
- $this->model->where($where)->delete();
- } else {
- $data['id'] = $jobs->id;
- $data['company_id'] = $jobs->company_id;
- $data['wage'] = $jobs->wage;
- $data['stime'] = $jobs->stime;
- $data['map_x'] = $jobs->map_x;
- $data['map_y'] = $jobs->map_y;
- $data['click'] = $jobs->click?$jobs->click:0;
- $data['jobs_name'] = $jobs->jobs_name;
- $data['companyname'] = $jobs->company_name;
- $data['key'] = $jobs->key_precise;
- $data['created_at'] = $jobs->created_at;
- $data['updated_at'] = $jobs->refresh_time?$jobs->refresh_time:$jobs->created_at;
- if ($this->model->where($where)->first()) {
- $reg = $this->model->where($where)->update($data);
- } else {
- $reg = $this->model->insert($data);
- }
- return $reg;
- }
- return true;
- }
- //获取单条职位
- public function getJobsOne($where)
- {
- $val = Jobs::where($where)->first();
- if (!$val) {
- return false;
- }
- $val->contact= JobsContact::where(array('job_id'=>$val['id']))->first();
- $val->deadline_days=($val->deadline -time())>0?"距到期时间还有<strong style=\"color:#FF0000\">".sub_day($val->deadline,time())."</strong>":"<span style=\"color:#FF6600\">目前已过期</span>";
- return $val;
- }
- }
|