123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- <?php
- namespace App\Services\Company;
- use App\Exceptions\ResponseException;
- use App\Models\CompanyInterView;
- use App\Repositories\CategoryRepository;
- use App\Repositories\CompanyInterviewRepository;
- use App\Repositories\MemberLogRepository;
- use App\Repositories\ResumeRepository;
- class CompanyInterviewService
- {
- /**
- * @var CompanyInterviewRepository
- */
- protected $CompanyInterviewRepository;
- protected $ResumeRepository;
- protected $memberLogRepository;
- protected $categoryRepository;
- protected $jobsService;
- /**
- * CompanyInterviewService constructor.
- * @param CompanyInterviewRepository $CompanyInterviewRepository
- * @param ResumeRepository $ResumeRepository
- */
- public function __construct(MemberLogRepository $memberLogRepository,CompanyInterviewRepository $CompanyInterviewRepository, ResumeRepository $ResumeRepository,CategoryRepository $categoryRepository,JobsService $jobsService)
- {
- $this->CompanyInterviewRepository = $CompanyInterviewRepository;
- $this->ResumeRepository = $ResumeRepository;
- $this->memberLogRepository=$memberLogRepository;
- $this->categoryRepository=$categoryRepository;
- $this->jobsService=$jobsService;
- }
- public function getInterviewByUid($user, $all)
- {
- $param_array = array('resume_id','look','settr');
- $params= array();
- if ($all) {
- foreach ($all as $k => $v) {
- if (in_array($k, $param_array)) {
- $params[$k] = $v;
- }
- }
- }
- $data[] = ['resume_uid','=',$user->id];
- if (request()->resume_id) {
- $data[] = ['resume_id','=',request()->resume_id];
- }
- if (request()->look) {
- $data[] = ['personal_look','=',request()->look];
- }
- if (request()->settr) {
- switch (request()->settr) {
- case '3':
- $data[] = ['created_at' ,'>=' ,date('Y-m-d H:i:s',strtotime("-3 day"))];
- break;
- case '7':
- $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-7 day"))];
- break;
- case '15':
- $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-15 day"))];
- break;
- case '30':
- $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-30 day"))];
- break;
- default:
- $data[] = ['created_at' ,'>=' , date('Y-m-d H:i:s',strtotime("-3 day"))];
- break;
- }
- }
- $count = $this->CompanyInterviewRepository->getInterviewCount($user->id, getJobsStatus());
- $interview = $this->CompanyInterviewRepository->getInterviewByUid($data, getJobsStatus());
- $getCategoriess = $this->categoryRepository->getCategoriess();
- foreach ($interview as $key => $val) {
- //薪资字段
- if (isset($val->jobs->wage)) {
- $wage = $val->jobs->wage;
- $wage_min= $val->jobs->wage_min;
- $wage_max = $val->jobs->wage_max;
- if ($wage > 0) {
- if ($getCategoriess) {
- if (config('aix.system.site_other.site_other.site_salary') == 1) {
- $interview[$key]['jobs']['wage_cn'] = array_has($getCategoriess['AIX_wage_k'], [$wage])?$getCategoriess['AIX_wage_k'][$wage]:'面议';
- } elseif (config('aix.system.site_other.site_other.site_salary') == 2) {
- $interview[$key]['jobs']['wage_cn'] = array_has($getCategoriess['AIX_wage_c'], [$wage])?$getCategoriess['AIX_wage_c'][$wage]:'面议';
- }
- }
- } elseif ($wage==0) {
- $interview[$key]['jobs']['wage_cn'] = $this->jobsService->dealWage($val->wage, $wage_min, $wage_max);
- } else {
- $interview[$key]['jobs']['wage_cn'] = '面议';
- }
- if($val->jobs->ygxs == 363) {
- $interview[$key]['jobs']['wage_cn'] = $wage_min.'元/小时';
- }
- }
- }
- return ['count'=>$count,'interview'=>$interview,'params'=>$params];
- }
- public function setInterview($id,$user)
- {
- if (empty($id)) {
- throw new ResponseException('未提供简历!', '', 400);
- }
- $res = CompanyInterView::where(['resume_uid'=>$user->id])->get()->toArray();
- $array_id = array_column($res,'id');
- $res_k = string_to_array(',',$id);
- foreach ($res_k as $key=>$val){
- if(!in_array($val,$array_id)){
- throw new ResponseException('面试邀请记录不存在', '', 400);
- }
- }
- return $this->CompanyInterviewRepository->setInterview(explode(',', $id), ['personal_look'=>2]);
- }
- public function delInterview($id,$user)
- {
- if (empty($id)) {
- throw new ResponseException('未提供简历!', '', 400);
- }
- $res = CompanyInterView::where(['resume_uid'=>$user->id])->get()->toArray();
- $array_id = array_column($res,'id');
- $res_k = string_to_array(',',$id);
- foreach ($res_k as $key=>$val){
- if(!in_array($val,$array_id)){
- throw new ResponseException('面试邀请记录不存在', '', 400);
- }
- }
- return $this->CompanyInterviewRepository->delInterview(explode(',', $id));
- }
- public function ajaxInterviewDetail($id,$user)
- {
- if (empty($id)) {
- throw new ResponseException('未提供面试邀请!', '', 400);
- }
- $res = CompanyInterView::where(['resume_uid'=>$user->id])->get()->toArray();
- $array_id = array_column($res,'id');
- $res_k = string_to_array(',',$id);
- foreach ($res_k as $key=>$val){
- if(!in_array($val,$array_id)){
- throw new ResponseException('面试邀请记录不存在', '', 400);
- }
- }
- if(!$this->memberLogRepository->createLog($user,2034,$id)){
- throw new \Exception("日志记失败!");
- }
- $this->CompanyInterviewRepository->setInterview(explode(',', $id), ['personal_look'=>2]);
- return $this->CompanyInterviewRepository->getInterviewById($id);
- }
- }
|