123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace App\Services\Person;
- use App\Exceptions\ResponseException;
- use App\Models\Resume;
- use App\Models\Subsite;
- use App\Models\SubsiteResume;
- use App\Repositories\ResumeRepository;
- use App\Repositories\SubsiteResumeRepository;
- use Illuminate\Support\Facades\DB;
- class SubsiteResumeService
- {
- /**
- * @var subsiteResumeRepository
- */
- protected $subsiteResumeRepository;
- protected $resumeRepository;
- /**
- * SubsiteResumeService constructor.
- * @param SubsiteResumeRepository $subsiteResumeRepository
- */
- public function __construct(SubsiteResumeRepository $subsiteResumeRepository, ResumeRepository $resumeRepository)
- {
- $this->subsiteResumeRepository = $subsiteResumeRepository;
- $this->resumeRepository = $resumeRepository;
- }
- public function getSubsiteResumeById($user, $resume_id)
- {
- $data['resume_id'] = $resume_id;
- $res = $this->subsiteResumeRepository->getSubsiteResumeArray($data);
- $result = $this->newSubsite($user->subsite_id, $res);
- $resultArr = $this->getSubsiteArray($result);
- return ['sub'=>$result,'subId'=>$resultArr];
- }
- protected function newSubsite($subsite_id, $res)
- {
- foreach ($res as $key => $val) {
- if ($val['subsite_id']!=0) {
- if (!$val['subsites']) {
- unset($res[$key]);
- }
- }
- if ($val['subsite_id']==$subsite_id) {
- unset($res[$key]);
- }
- }
- return $res;
- }
- protected function getSubsiteArray($res)
- {
- return array_column($res, 'subsite_id');
- }
- public function updateSubditeResume($user, $input)
- {
- $resume_id = $input['id'];
- if (!$resume_id) {
- throw new ResponseException('简历不存在!');
- }
- $subsiteArr = SubsiteResume::where('resume_id', $resume_id)->get();
- DB::beginTransaction();
- try {
- $das['audit'] =1;
- $expires = config('aix.personal_set.per_set.per_set.resume_expires');
- if($expires){
- $das['expires'] = strtotime("+{$expires} days");
- }
- $this->resumeRepository->updateById($das, $resume_id);
- if (!$subsiteArr->isEmpty()) {
- SubsiteResume::where('resume_id', $resume_id)->delete();
- }
- $subsiteDefault = [
- [
- 'subsite_id'=>$user->subsite_id,
- 'resume_id'=>$resume_id,
- 'created_at'=>date('Y-m-d H:i:s'),
- 'updated_at'=>date('Y-m-d H:i:s'),
- ]
- ];
- $subsiteArr = [];
- if ($input['subsite_id']!==null) {
- $subsite = explode(',', $input['subsite_id']);
- foreach ($subsite as $key => $val) {
- $subsiteArr[$key]['subsite_id'] = $val;
- $subsiteArr[$key]['resume_id'] = $resume_id;
- $subsiteArr[$key]['created_at'] = date('Y-m-d H:i:s');
- $subsiteArr[$key]['updated_at'] = date('Y-m-d H:i:s');
- }
- if (in_array($user->subsite_id, $subsite)) {
- $subsiteDefault = $subsiteArr;
- } else {
- $subsiteDefault = array_merge($subsiteDefault, $subsiteArr);
- }
- }
- SubsiteResume::insert($subsiteDefault);
- event_search_update(Resume::class, (string)$resume_id, 'update');
- $subsite_new_id = array_column($subsiteArr, 'subsite_id');
- foreach ($subsite_new_id as $key => $val) {
- if ($val==$user->subsite_id) {
- unset($subsite_new_id[$key]);
- }
- }
- $newArr = [];
- if (!empty($subsite_new_id)) {
- $newArr = Subsite::whereIn('id', $subsite_new_id)->select('sitename')->get()->toArray();
- if (in_array(0, $subsite_new_id)) {
- array_unshift($newArr, ['sitename'=>'总站']);
- }
- }
- DB::commit();
- return ['code'=>1,'info'=>$newArr];
- } catch (\Exception $e) {
- DB::rollback();
- return ['code'=>0,'info'=>$e->getMessage()];
- }
- }
- }
|