| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 | 
							- <?php
 
- namespace App\Models;
 
- use App\Search\Traits\JobSearchable;
 
- use Illuminate\Database\Eloquent\Model;
 
- use Illuminate\Database\Eloquent\SoftDeletes;
 
- /**
 
-  * App\Models\Jobs
 
-  *
 
-  * @property int $id
 
-  * @property int $valid 职位状态:0无效1有效
 
-  * @property string $jobs_name 职位名称
 
-  * @property int $company_id 企业ID
 
-  * @property string $company_name 企业名称
 
-  * @property int $company_addtime 企业添加时间
 
-  * @property int $company_audit 公司审核状态:0未审核 ;1审核通过;2审核中;3审核未通过
 
-  * @property int $emergency 紧急招聘:0否;1是
 
-  * @property int $stick 职位置顶:0否;1是
 
-  * @property int $nature 工作性质
 
-  * @property int $sex 性别:1男;2女
 
-  * @property int $age 年龄
 
-  * @property int $amount 招聘人数
 
-  * @property int $topclass 职位一级分类
 
-  * @property int $category 职位二级分类
 
-  * @property int $subclass 职位三级分类
 
-  * @property string $category_cn 职位分类
 
-  * @property int $trade 行业ID
 
-  * @property string $scale 企业规模
 
-  * @property string $district 地区分类
 
-  * @property string $tag 标签分类
 
-  * @property int $education 学历ID
 
-  * @property int $experience 工作经验ID
 
-  * @property int $minwage 最低工资
 
-  * @property int $maxwage 最高工资
 
-  * @property int $negotiable 面议:0否;1是
 
-  * @property string|null $jobs_content 职位描述
 
-  * @property int $deadline 到期时间
 
-  * @property int $refresh_time 刷新时间
 
-  * @property int $stime 置顶时间
 
-  * @property int $setmeal_deadline 套餐到期时间
 
-  * @property int $setmeal_id 套餐ID
 
-  * @property string $setmeal_name 套餐名称
 
-  * @property int $audit 审核状态:0未审核;1审核通过;2审核中;3审核未通过
 
-  * @property int $display 是否显示:1是0否
 
-  * @property int $robot 是否为采集信息:0人工;1采集
 
-  * @property float $map_x 地图X坐标
 
-  * @property float $map_y 地图Y坐标
 
-  * @property int $map_zoom 地图缩放级别
 
-  * @property int $add_mode 添加方式
 
-  * @property string $department 部门
 
-  * @property string|null $key_precise 精确搜索关键字
 
-  * @property string|null $key_full 全文搜索关键字
 
-  * @property int $subsite_id 分站ID:0总站
 
-  * @property \Illuminate\Support\Carbon|null $created_at
 
-  * @property \Illuminate\Support\Carbon|null $updated_at
 
-  * @property string|null $deleted_at
 
-  * @property-read \App\Models\Company $company
 
-  * @method static bool|null forceDelete()
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs newModelQuery()
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs newQuery()
 
-  * @method static \Illuminate\Database\Query\Builder|\App\Models\Jobs onlyTrashed()
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs query()
 
-  * @method static bool|null restore()
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereAddMode($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereAge($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereAmount($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereAudit($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereCategory($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereCategoryCn($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereCompanyAddtime($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereCompanyAudit($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereCompanyId($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereCompanyName($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereCreatedAt($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereDeadline($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereDeletedAt($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereDepartment($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereDisplay($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereDistrict($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereEducation($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereEmergency($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereExperience($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereId($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereJobsContent($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereJobsName($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereKeyFull($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereKeyPrecise($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereMapX($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereMapY($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereMapZoom($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereMaxwage($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereMinwage($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereNature($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereNegotiable($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereRefreshTime($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereRobot($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereScale($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereSetmealDeadline($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereSetmealId($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereSetmealName($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereSex($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereStick($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereStime($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereSubclass($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereSubsiteId($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereTag($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereTopclass($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereTrade($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereUpdatedAt($value)
 
-  * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Jobs whereValid($value)
 
-  * @method static \Illuminate\Database\Query\Builder|\App\Models\Jobs withTrashed()
 
-  * @method static \Illuminate\Database\Query\Builder|\App\Models\Jobs withoutTrashed()
 
-  * @mixin \Eloquent
 
-  */
 
- class Jobs extends Model
 
- {
 
-     use SoftDeletes,JobSearchable;
 
-     protected $guarded = [];
 
-     static function getTableName()
 
-     {
 
-         $job = new Jobs();
 
-         return $job->getTable();
 
-     }
 
-     public function company()
 
-     {
 
-         return $this->belongsTo(Company::class, 'company_id');
 
-     }
 
-     public function subsites()
 
-     {
 
-         return $this->hasMany(SubsiteJob::class, 'jobs_id');
 
-     }
 
-     public function promotion()
 
-     {
 
-         return $this->hasMany(Promotion::class, 'jobid');
 
-     }
 
-     public function jobsContact()
 
-     {
 
-         return $this->hasOne(JobsContact::class, 'job_id');
 
-     }
 
-     public function contact()
 
-     {
 
-         return $this->hasOne(JobsContact::class, 'job_id');
 
-     }
 
-     public static function jobsUpdate($ids, $data)
 
-     {
 
-         return Jobs::whereIn('id', $ids)->update($data);
 
-     }
 
-     public function getTagAttribute($value)
 
-     {
 
-         return explode(',', $value);
 
-     }
 
-     public function setTagAttribute($value)
 
-     {
 
-         if ($value) {
 
-             $this->attributes['tag'] = implode(',', $value);
 
-         } else {
 
-             return '';
 
-         }
 
-     }
 
-     public function getAgeAttribute($value)
 
-     {
 
-         return explode('-', $value);
 
-     }
 
-     public function setAgeAttribute($value)
 
-     {
 
-         if ($value) {
 
-             $this->attributes['age'] = implode('-', $value);
 
-         }
 
-     }
 
-     public function viewJobs()
 
-     {
 
-         return $this->hasMany(ViewJob::class, 'job_id', 'id');
 
-     }
 
-     public function personFavorite()
 
-     {
 
-         return $this->hasMany(PersonFavorite::class, 'job_id', 'id');
 
-     }
 
-     public function categoryTrade()
 
-     {
 
-         return $this->belongsTo(Category::class, 'trade');
 
-     }
 
-     public function categoryScale()
 
-     {
 
-         return $this->belongsTo(Category::class, 'scale');
 
-     }
 
-     public function categoryEducation()
 
-     {
 
-         return $this->belongsTo(Category::class, 'education');
 
-     }
 
-     public function categoryWage()
 
-     {
 
-         return $this->belongsTo(Category::class, 'wage');
 
-     }
 
-     public function queueAutoRefreshs()
 
-     {
 
-         return $this->hasMany(QueueAutoRefresh::class, 'pid')->where('utype', 1);
 
-     }
 
-     public function companyInterviews()
 
-     {
 
-         return $this->hasMany(CompanyInterView::class, 'jobs_id');
 
-     }
 
-     public function personalJobsApply()
 
-     {
 
-         return $this->hasMany(PersonalJobsApply::class, 'jobs_id', 'id');
 
-     }
 
-     public function categoryJobsTopClass()
 
-     {
 
-         return $this->hasOne(CategoryJobs::class, 'id', 'topclass');
 
-     }
 
-     public function categoryJobsCategory()
 
-     {
 
-         return $this->hasOne(CategoryJobs::class, 'id', 'category');
 
-     }
 
-     public function categoryJobsSubClass()
 
-     {
 
-         return $this->hasOne(CategoryJobs::class, 'id', 'subclass');
 
-     }
 
-     public function subsiteJobs()
 
-     {
 
-         return $this->hasMany(SubsiteJob::class, 'jobs_id', 'id');
 
-     }
 
-     
 
-     public function companyConsultant()
 
-     {
 
-         return $this->belongsTo(CompanyConsultant::class,'company_id', 'company_id');
 
-     }
 
-     
 
-     public function toSearchableArray()
 
-     {
 
-         $arr = $this ->load(['company','subsiteJobs'])->toArray();
 
-         $arr['age_min']=empty($arr['age'][0])?16:intval($arr['age'][0]);
 
-         $arr['age_max']=empty($arr['age'][1])?99:intval($arr['age'][1]);
 
-         $arr['sex_cn'] = $arr['sex'] == 1?"男":"女";
 
-         $arr['district'] = string_to_array('.', $arr['district']);
 
-         foreach ($arr['district'] as $key => $val) {
 
-             $arr['district_cn'][$key] = get_district_cn($val);
 
-         }
 
-         $arr['trade'] = $arr['company']['trade'];
 
-         $arr['wage_cn'] =get_category($arr['wage']);
 
-         $arr['wage_min'] =$arr['wage_min'];
 
-         $arr['wage_max'] =$arr['wage_max'];
 
-         $arr['trade_cn'] = get_category($arr['trade']);
 
-         foreach ($arr['tag'] as $key => $val) {
 
-             $arr['tag'][$key] = (int)$val;
 
-         }
 
-         foreach ($arr['tag'] as $key => $val) {
 
-             $arr['tag_cn'][$key] =get_category($val);
 
-         }
 
-         $arr['scale_cn'] = get_category($arr['scale']);
 
-         $arr['nature_cn'] = get_category($arr['nature']);
 
-         $arr['education_cn'] = get_category($arr['education']);
 
-         $arr['experience_cn'] = get_category($arr['experience']);
 
-         $arr['intention_jobs_id'] = [$arr['topclass'],$arr['category'],$arr['subclass']];
 
-         $arr['intention_jobs'] = [get_job_category($arr['topclass']),get_job_category($arr['category']),get_job_category($arr['subclass'])];
 
-         $arr['location'] = [
 
-             'lat'=>is_numeric($arr['map_y'])?$arr['map_y']:0,
 
-             'lon'=>is_numeric($arr['map_x'])?$arr['map_x']:0
 
-         ];
 
-         $arr['company']['nature_cn'] = get_category($arr['company']['nature']);
 
-         $arr['company']['trade_cn'] = get_category($arr['company']['trade']);
 
-         $arr['company']['scale_cn'] = get_category($arr['company']['scale']);
 
-         $arr['company']['district'] = string_to_array('.', $arr['company']['district']);
 
-         $arr['company']['district_cn'] = string_to_array('/', $arr['company']['district_cn']);
 
-         foreach ($arr['company']['tag'] as $key => $val) {
 
-             $arr['company']['tag'][$key] = (int)$val;
 
-         }
 
-         foreach ($arr['company']['tag'] as $key => $val) {
 
-             $arr['company']['tag_cn'][$key] =get_category($val);
 
-         }
 
-         $arr['company']['location'] = [
 
-             'lat'=>is_numeric($arr['company']['map_y'])?$arr['company']['map_y']:0,
 
-             'lon'=>is_numeric($arr['company']['map_x'])?$arr['company']['map_x']:0
 
-         ];
 
-         $arr['company']['subsite_ids'] =  [$arr['subsite_id']];
 
-         $arr['subsite_ids'] = array_column($arr['subsite_jobs'], 'subsite_id');
 
-         unset($arr['map_x']);
 
-         unset($arr['map_y']);
 
-         unset($arr['company']['password']);
 
-         unset($arr['company']['remember_token']);
 
-         unset($arr['company']['map_x']);
 
-         unset($arr['company']['map_y']);
 
-         unset($arr['company']['map_zoom']);
 
-         unset($arr['company']['map_open']);
 
-         return $arr;
 
-     }
 
- }
 
 
  |