123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- <?php
- namespace App\Models;
- use App\Search\Traits\ResumeSearchable;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use Illuminate\Database\Eloquent\Model;
- /**
- * App\Models\Resume
- *
- * @property int $id
- * @property int $uid 会员uid
- * @property int|null $display 是否显示(1:显示 0:不显示)
- * @property int $display_name 简历名称(1:显示 0:不显示)
- * @property int|null $audit 简历审核(0:审核不通过 1:待审核 2:审核通过)
- * @property string|null $remark 审核备注
- * @property int|null $stick 是否置顶(0:否 1:是)
- * @property int|null $strong_tag 醒目标签
- * @property string $title 简历标题
- * @property string $fullname 真实姓名
- * @property int $sex 性别(1:男 2:女)
- * @property string $sex_cn 性别
- * @property int|null $nature 工作性质id
- * @property string|null $nature_cn 工作性质
- * @property string|null $trade 行业id
- * @property string|null $trade_cn 行业
- * @property int $birthdate 生日
- * @property string|null $residence 现居住地
- * @property int|null $height 身高(cm)
- * @property int|null $marriage 婚否(1:已婚 2:未婚)
- * @property string|null $marriage_cn 婚否
- * @property int $experience 工作经验id
- * @property string $experience_cn 工作经验
- * @property string $district 地区ID
- * @property string $district_cn 地区
- * @property int $wage 期望薪资id
- * @property string $wage_cn 期望薪资
- * @property string|null $householdaddress 户口所在地
- * @property int $education 学历id
- * @property string $education_cn 学历
- * @property int|null $major 专业id
- * @property string|null $major_cn 专业
- * @property int|null $tag 简历标签编号
- * @property string|null $tag_cn 简历标签
- * @property int $telephone 手机号码
- * @property string $email 邮箱
- * @property int|null $email_notify 邮件接收通知(1:接收 0:不接受)
- * @property string $intention_jobs_id 期望职位id
- * @property string $intention_jobs 期望职位
- * @property string|null $specialty 自我描述
- * @property int|null $photo 是否为照片简历(0:否 1:是)
- * @property string|null $photo_img 照片
- * @property int|null $photo_audit 照片审核(0:审核失败,1:待审核 2:审核成功)
- * @property int|null $photo_display 是否显示照片(1:显示 0:不显示)
- * @property string|null $qq QQ
- * @property string|null $weixin 微信
- * @property int|null $subsite_id 站点
- * @property int|null $stime 置顶时间
- * @property int|null $entrust 简历委托(天)
- * @property string|null $talent 高级人才(0:否 1:是)
- * @property int $level 简历等级(1:优,2:良 0:差)
- * @property int $complete_percent 简历完整度
- * @property int|null $current 求职状态编号
- * @property string|null $current_cn 求职状态
- * @property string|null $word_resume word简历
- * @property string|null $word_resume_title word简历标题
- * @property int|null $word_resume_addtime word简历添加时间
- * @property string|null $key_full 全文搜索关键字
- * @property string|null $key_precise 精确搜索关键字
- * @property int|null $click 查看次数
- * @property string|null $tpl 简历模板
- * @property int|null $resume_from_pc 简历来自PC(1->是 0->否)
- * @property int|null $def 是否为默认简历(1:是 0:否)
- * @property int|null $mobile_audit 手机是否认证(1:是 0:否)
- * @property string|null $comment_content 简历评论内容
- * @property int|null $is_quick 快速创建简历(0:否 1:是)
- * @property string|null $idcard 身份证
- * @property \Illuminate\Support\Carbon|null $created_at
- * @property \Illuminate\Support\Carbon|null $updated_at
- * @property-read \App\Models\Member $members
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume newModelQuery()
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume newQuery()
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume query()
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereAudit($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereBirthdate($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereClick($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereCommentContent($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereCompletePercent($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereCreatedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereCurrent($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereCurrentCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereDef($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereDisplay($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereDisplayName($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereDistrict($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereDistrictCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereEducation($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereEducationCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereEmail($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereEmailNotify($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereEntrust($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereExperience($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereExperienceCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereFullname($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereHeight($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereHouseholdaddress($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereId($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereIdcard($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereIntentionJobs($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereIntentionJobsId($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereIsQuick($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereKeyFull($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereKeyPrecise($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereLevel($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereMajor($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereMajorCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereMarriage($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereMarriageCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereMobileAudit($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereNature($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereNatureCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume wherePhoto($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume wherePhotoAudit($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume wherePhotoDisplay($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume wherePhotoImg($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereQq($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereRemark($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereResidence($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereResumeFromPc($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereSex($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereSexCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereSpecialty($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereStick($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereStime($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereStrongTag($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereSubsiteId($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTag($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTagCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTalent($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTelephone($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTitle($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTpl($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTrade($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereTradeCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereUid($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereUpdatedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereWage($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereWageCn($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereWeixin($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereWordResume($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereWordResumeAddtime($value)
- * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Resume whereWordResumeTitle($value)
- * @mixin \Eloquent
- */
- class Resume extends Model
- {
- use SoftDeletes, ResumeSearchable;
- protected $guarded = [];
- public function members()
- {
- return $this->belongsTo(Member::class, 'uid');
- }
- public function memberInfos()
- {
- return $this->belongsTo(MemberInfo::class, 'uid', 'uid');
- }
- public function resumeEntrusts()
- {
- return $this->hasOne(ResumeEntrust::class, 'resume_id', 'id');
- }
- public function companys()
- {
- return $this->belongsToMany(Company::class, 'company_favorites', 'resume_id', 'company_id')->withTimestamps();
- }
- public function resumeEducation()
- {
- return $this->hasMany(ResumeEducation::class, 'resume_id');
- }
- public function resumeWork()
- {
- return $this->hasMany(ResumeWork::class, 'resume_id');
- }
- public function resumeTrain()
- {
- return $this->hasMany(ResumeTrain::class, 'resume_id');
- }
- public function resumeCredent()
- {
- return $this->hasMany(ResumeCredent::class, 'resume_id');
- }
- public function resumeLanguage()
- {
- return $this->hasMany(ResumeLanguage::class, 'resume_id');
- }
- public function resumeImgs()
- {
- return $this->hasMany(ResumeImg::class, 'resume_id','id');
- }
- public function personTag()
- {
- return $this->hasOne(PersonalServiceTagLog::class, 'resume_id')->where('endtime', '>', time());
- }
- public function subsites()
- {
- return $this->belongsToMany(Subsite::class, 'subsite_resumes', 'resume_id', 'subsite_id');
- }
- public function subsiteResume()
- {
- return $this->hasMany(SubsiteResume::class, 'resume_id', 'id');
- }
- public function subsite()
- {
- return $this->belongsTo(Subsite::class,'subsite_id','id');
- }
- public function toSearchableArray()
- {
- $resume=$this->load([
- 'memberInfos',
- 'resumeEducation',
- 'resumeWork',
- 'resumeTrain',
- 'resumeCredent',
- 'resumeLanguage',
- 'subsiteResume',
- ])->toArray();
- $resume['stick']=$resume['stick']?$resume['stick']:0;
- $resume['stime']=$resume['stime']?$resume['stime']:0;
- $resume['mobile_audit']=$this->members->mobile_audit;
- $resume['photo']=$this->memberInfos->photo;
- $resume['photo_audit']=$this->memberInfos->photo_audit;
- $resume['trade']=string_to_array(',', $resume['trade']);
- $resume['trade_cn']=string_to_array('+', $resume['trade_cn']);
- $resume['district']=string_to_array(['.',','], $resume['district']);
- $new_dis = [];
- foreach ($resume['district'] as $key => $val) {
- if ($val==0 && $key != 1&&$key != 4 &&$key != 7) {
- $new = CategoryDistrict::where('parent_id', $resume['district'][$key-2])->pluck('id')->toArray();
- foreach ($new as $key2) {
- $new_dis[] = $key2;
- }
- unset($resume['district'][$key]);
- }
- }
- $resume['district'] = array_merge($resume['district'], $new_dis);
- $resume['district_cn']=string_to_array('+', $resume['district_cn']);
- $resume['tag']=string_to_array(',', $resume['tag']);
- $resume['tag_cn']=string_to_array(',', $resume['tag_cn']);
- $resume['intention_jobs_id']=string_to_array(['.',','], $resume['intention_jobs_id']);
- $new_jobs = [];
- foreach ($resume['intention_jobs_id'] as $key => $val) {
- if ($val==0) {
- $new = CategoryJobs::where('parent_id', $resume['intention_jobs_id'][$key-1])->pluck('id')->toArray();
- foreach ($new as $key2) {
- $new_jobs[] = $key2;
- }
- unset($resume['intention_jobs_id'][$key]);
- }
- }
- $resume['intention_jobs_id'] = array_merge($resume['intention_jobs_id'], $new_jobs);
- $resume['intention_jobs']=string_to_array('+', $resume['intention_jobs']);
- $resume['member_infos']['residence']=string_to_array('.', $resume['member_infos']['residence']);
- $resume['member_infos']['residence_cn']=string_to_array('-', $resume['member_infos']['residence_cn']);
- $resume['member_infos']['householdaddress']=string_to_array('.', $resume['member_infos']['householdaddress']);
- $resume['member_infos']['householdaddress_cn']=string_to_array('-', $resume['member_infos']['householdaddress_cn']);
- $resume['person_shield_companys']=PersonShieldCompany::where('uid', $resume['uid'])->pluck('company_id')->toArray();
- $resume['subsite_ids'] = array_column($resume['subsite_resume'], 'subsite_id');
- return $resume;
- }
- public function getResumeAllInfo()
- {
- return $this->load([
- 'memberInfos',
- 'resumeEducation',
- 'resumeWork',
- 'resumeTrain',
- 'resumeCredent',
- 'resumeLanguage',
- 'subsiteResume',
- ]);
- }
- static function getTableName()
- {
- $obj = new Resume();
- return $obj->getTable();
- }
- }
|