123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- <?php
- namespace App\Models;
- use App\Search\Traits\ResumeSearchable;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use Illuminate\Database\Eloquent\Model;
- 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();
- }
- }
|