| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 | <?phpnamespace 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;    }}
 |