| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: wuzhenke
 
-  * Date: 2019/1/24
 
-  * Time: 17:26
 
-  */
 
- namespace App\Services\Jobfair;
 
- use App\Models\Jobfair\JobfairBlacklist;
 
- use App\Repositories\CategoryRepository;
 
- use App\Repositories\Jobfair\JobfairBlackListRepository;
 
- use App\Repositories\Jobfair\JobfairCompanyRepository;
 
- use App\Repositories\Jobfair\JobfairFloorPlanRepository;
 
- use App\Repositories\Jobfair\JobfairFloorplanStandRepository;
 
- use App\Repositories\Jobfair\JobfairManagementRepository;
 
- use App\Repositories\Jobfair\JobfairPersonalJobsApplyRepository;
 
- use App\Repositories\Jobfair\JobfairPutJobRepository;
 
- use App\Repositories\Jobfair\JobfairRepository;
 
- use App\Repositories\MemberHandselRepository;
 
- use App\Repositories\MemberLogRepository;
 
- use App\Repositories\MemberPointRepository;
 
- use App\Repositories\MemberSetmealRepository;
 
- use App\Repositories\MembersSetmealLogRepository;
 
- use App\Repositories\ResumeRepository;
 
- use App\Services\Common\EmailService;
 
- use App\Services\SubsiteService;
 
- use Illuminate\Support\Facades\DB;
 
- use SimpleSoftwareIO\QrCode\Facades\QrCode;
 
- use App\Models\Subsite;
 
- use App\Repositories\Jobfairout\JobfairoutRepository;
 
- use App\Repositories\ArticleRepository;
 
- class JobfairService
 
- {
 
-     protected $jobfairRepository;
 
-     protected $jobfairFloorplanStandRepository;
 
-     protected $jobfairCompanyRepository;
 
-     protected $jobfairPutJobRepository;
 
-     protected $jobfairFloorPlanRepository;
 
-     protected $jobfairBlackListRepository;
 
-     protected $memberSetmealRepository;
 
-     protected $memberPointRepository;
 
-     protected $memberHandselRepository;
 
-     protected $membersSetmealLogRepository;
 
-     protected $resumeRepository;
 
-     protected $jobfairPersonalJobsApplyRepository;
 
-     protected $jobfairManagementRepository;
 
-     protected $subsiteService;
 
-     protected $memberLogRepository;
 
-     protected $jobfairoutRepository;
 
-     protected $articleRepository;
 
-     protected $emailService;
 
-     /**
 
-      * @var CategoryRepository
 
-      */
 
-     private $categoryRepository;
 
-     /**
 
-      * JobfairService constructor.
 
-      * @param $jobfairRepository
 
-      * @param $jobfairFloorplanStandRepository
 
-      * @param $jobfairCompanyRepository
 
-      * @param $jobfairPutJobRepository
 
-      * @param $jobfairFloorPlanRepository
 
-      * @param $jobfairBlackListRepository
 
-      * @param $memberSetmealRepository
 
-      * @param $memberPointRepository
 
-      * @param $memberHandselRepository
 
-      * @param $membersSetmealLogRepository
 
-      * @param $resumeRepository
 
-      * @param $jobfairPersonalJobsApplyRepository
 
-      * @param $jobfairManagementRepository
 
-      * @param $subsiteService
 
-      * @param $articleRepository
 
-      */
 
-     public function __construct(
 
-         JobfairRepository $jobfairRepository,
 
-         SubsiteService $subsiteService,
 
-         JobfairManagementRepository $jobfairManagementRepository,
 
-         JobfairPersonalJobsApplyRepository $jobfairPersonalJobsApplyRepository,
 
-         ResumeRepository $resumeRepository,
 
-         MembersSetmealLogRepository $membersSetmealLogRepository,
 
-         MemberHandselRepository $memberHandselRepository,
 
-         MemberPointRepository $memberPointRepository,
 
-         MemberSetmealRepository $memberSetmealRepository,
 
-         JobfairBlackListRepository $jobfairBlackListRepository,
 
-         JobfairPutJobRepository $jobfairPutJobRepository,
 
-         JobfairCompanyRepository $jobfairCompanyRepository,
 
-         JobfairFloorPlanRepository $jobfairFloorPlanRepository,
 
-         JobfairFloorplanStandRepository $jobfairFloorplanStandRepository,
 
-         MemberLogRepository $memberLogRepository,
 
-         JobfairoutRepository $jobfairoutRepository,
 
-         ArticleRepository $articleRepository,
 
-         CategoryRepository $categoryRepository,
 
-         EmailService $emailService
 
-     ) {
 
-         $this->jobfairRepository = $jobfairRepository;
 
-         $this->jobfairFloorplanStandRepository = $jobfairFloorplanStandRepository;
 
-         $this->jobfairCompanyRepository = $jobfairCompanyRepository;
 
-         $this->jobfairPutJobRepository = $jobfairPutJobRepository;
 
-         $this->jobfairFloorPlanRepository = $jobfairFloorPlanRepository;
 
-         $this->jobfairBlackListRepository = $jobfairBlackListRepository;
 
-         $this->memberSetmealRepository = $memberSetmealRepository;
 
-         $this->memberPointRepository = $memberPointRepository;
 
-         $this->memberHandselRepository = $memberHandselRepository;
 
-         $this->membersSetmealLogRepository = $membersSetmealLogRepository;
 
-         $this->resumeRepository = $resumeRepository;
 
-         $this->jobfairPersonalJobsApplyRepository = $jobfairPersonalJobsApplyRepository;
 
-         $this->jobfairManagementRepository = $jobfairManagementRepository;
 
-         $this->subsiteService = $subsiteService;
 
-         $this->memberLogRepository=$memberLogRepository;
 
-         $this->jobfairoutRepository = $jobfairoutRepository;
 
-         $this->articleRepository = $articleRepository;
 
-         $this->categoryRepository = $categoryRepository;
 
-         $this->emailService = $emailService;
 
-     }
 
-     /**近期招聘会
 
-      * @return array
 
-      */
 
-     public function jobfairIndex($user)
 
-     {
 
-         $jobfairList = $this->jobfairRepository->getJobfairList($user->id);
 
-         foreach ($jobfairList as $key => $val) {
 
-             $val->predetermined_ok = 0;
 
-             if ($val->predetermined_status == 1 && $val->predetermined_start && $val->predetermined_start < time() && $val->predetermined_end && $val->predetermined_end > time()) {
 
-                 $val->predetermined_ok = 1;
 
-             }
 
-         }
 
-         $week = ['日','一','二','三','四','五','六'];
 
-         return [
 
-             'jobfairList'=>$jobfairList,
 
-             'week'=>$week,
 
-         ];
 
-     }
 
-     /**招聘会列表
 
-      * @param $request
 
-      * @return array
 
-      */
 
-     public function index($request)
 
-     {
 
-         $typeList = $this->jobfairManagementRepository->orderBy('order_list', 'desc')->get();
 
-         $page = $request->page?$request->page:0;
 
-         $search_type = $request->search_type ? $request->search_type : '';
 
-         $key = $request->key ? $request->key : '';
 
-         $firstwhere = [
 
-             'display'=>1,
 
-         ];
 
-         $firstJobfair = $this->jobfairRepository->firstJobfair($firstwhere);
 
-         if ($firstJobfair) {
 
-             if ($firstJobfair->predetermined_status == 1 && $firstJobfair->predetermined_start && $firstJobfair->predetermined_start < time() && $firstJobfair->predetermined_end && $firstJobfair->predetermined_end > time()) {
 
-                 $firstJobfair->predetermined_ok = 1;
 
-             } else {
 
-                 $firstJobfair->predetermined_ok = 0;
 
-             }
 
-         }
 
-         $jobfair_type = $request->type?$request->type:'';
 
-         $pageCount = 10;
 
-         $where['display']= 1;
 
-         if ($jobfair_type != -1) {
 
-             if($jobfair_type){
 
-                 $where['jobfair_type'] = $jobfair_type;
 
-             }
 
-             $allJobfair = $this->jobfairRepository->allJobfair($where, $page, $pageCount,$search_type,$key);
 
-         }else{
 
-             $allJobfair = $this->jobfairoutRepository->allJobfair($where, $page, $pageCount);
 
-         }
 
-         if ($allJobfair) {
 
-             foreach ($allJobfair as $key => $val) {
 
-                 if ($val->predetermined_status == 1 && $val->predetermined_start && $val->predetermined_start < time() && $val->predetermined_end && $val->predetermined_end > time()) {
 
-                     $val->predetermined_ok = 1;
 
-                 } else {
 
-                     $val->predetermined_ok = 0;
 
-                 }
 
-             }
 
-         }
 
-         $more = count($allJobfair) >= $pageCount ? true : false;
 
-         $weekarray=array("日","一","二","三","四","五","六");
 
-         if ($request->ajax()) {
 
-             return [
 
-                 'firstJobfair'=> $firstJobfair,
 
-                 'page' => $page,
 
-                 'allJobfair'=> $allJobfair,
 
-                 'typeList'=> $typeList,
 
-                 'weekarray'=>$weekarray
 
-             ];
 
-         }
 
-         //资讯快报
 
-         $news = $this->articleRepository->getArticles(['type_id'=>49],4);
 
-         //招聘会回顾
 
-         $jobfair_review = $this->articleRepository->getArticles(['type_id'=>50],4);
 
-         return [
 
-             'firstJobfair'=> $firstJobfair,
 
-             'page' => $page,
 
-             'allJobfair'=> $allJobfair,
 
-             'typeList'=> $typeList,
 
-             'more'=> $more,
 
-             'news'=> $news,
 
-             'jobfair_review'=> $jobfair_review,
 
-             'weekarray'=>$weekarray
 
-         ];
 
-     }
 
-     /**招聘会详情
 
-      * @param $id
 
-      * @return array
 
-      */
 
-     public function jobfairShow($id)
 
-     {
 
-         $map1 =[
 
-             'id'=>$id,
 
-         ];
 
-         $jobfair = $this->jobfairRepository->findOne($map1);
 
-         if (!$jobfair) {
 
-             return ['status'=>0, 'msg'=>'查无此招聘会'];
 
-         }
 
-         if ($jobfair->predetermined_status == 1 && $jobfair->predetermined_start && $jobfair->predetermined_start < time() && $jobfair->predetermined_end && $jobfair->predetermined_end > time()) {
 
-             $jobfair->predetermined_ok =1;
 
-         } else {
 
-             $jobfair->predetermined_ok =0;
 
-         }
 
-         //总展位数
 
-         $where = [
 
-             'jobfair_id'=>$id,
 
-         ];
 
-         $jobfair->standsTotal = $this->jobfairFloorplanStandRepository->standsTotal($where);
 
-         $jobfair->phone_html = '';
 
-         if($jobfair->phone){
 
-             foreach (explode(',',$jobfair->phone) as $value){
 
-                 $jobfair->phone_html .= '<a href="tel:'.$value.'" style=" text-decoration: none;color: #0180CF; ">'.$value .'</a><br/><br/>';
 
-             }
 
-         }
 
-         //空余展位数
 
-         $map = [
 
-             'jobfair_id'=>$id,
 
-             'type'=>1
 
-         ];
 
-         $free_standsSurplus = $this->jobfairFloorplanStandRepository->standsTotal($map);
 
-         if ($free_standsSurplus->isEmpty()) {
 
-             $jobfair->standsSurplus = 0;
 
-         } else {
 
-             $free_standsSurplusCount = $free_standsSurplus->toArray();
 
-             $free_count = count($free_standsSurplusCount);
 
-             $positionArr = array_column($free_standsSurplusCount, 'id');
 
-             $listCount = $this->jobfairCompanyRepository->findPositionCount($positionArr);
 
-             if ($listCount->isNotEmpty()) {
 
-                 $positionCount =  $listCount->count();
 
-                 foreach ($listCount as $key => $val) {
 
-                     if ($val->audit == 3) {
 
-                         $positionCount--;
 
-                     }
 
-                 }
 
-             } else {
 
-                 $positionCount = 0;
 
-             }
 
-             $jobfair->standsSurplus = $free_count-$positionCount?$free_count-$positionCount:0;
 
-         }
 
-         $companyCount = $this->jobfairCompanyRepository->getComCount($id);
 
-         return [
 
-             'status'=>1,
 
-             'jobfair'=>$jobfair,
 
-             'companyCount'=>$companyCount,
 
-         ];
 
-     }
 
-     /**招聘会企业
 
-      * @param $request
 
-      * @param $id
 
-      * @return JobfairCompanyRepository[]|array|\Illuminate\Database\Eloquent\Collection
 
-      */
 
-     public function jobfairShowCom($request, $id)
 
-     {
 
-         $where = ['jobfair_companys.jobfair_id'=>$id,'jobfair_companys.audit'=>1];
 
-         $key = isset($request->key)?$request->key:0;
 
-         $offset = isset($request->page)?$request->page:0;
 
-         $limit = 20;
 
-         //参会总数(分组)
 
-         $companyCount = $this->jobfairCompanyRepository->getComCount($id);
 
-         //参会总数(未分组)
 
-         $comCount = $this->jobfairCompanyRepository->getCounts($id);
 
-         $jobfair = $this->jobfairRepository->findJobfair(['id'=>$id]);
 
-         if (!$jobfair) {
 
-             return ['status'=>0, 'msg'=>'查无此招聘会'];
 
-         }
 
-         //总展位数
 
-         $where1 = [
 
-             'jobfair_id'=>$id,
 
-         ];
 
-         $jobfair->standsTotal = $this->jobfairFloorplanStandRepository->standsTotal($where1);
 
-         //空余展位数
 
-         $map = [
 
-             'jobfair_id'=>$id,
 
-             'type'=>1
 
-         ];
 
-         if ($jobfair->predetermined_status == 1 && $jobfair->predetermined_start && $jobfair->predetermined_start < time() && $jobfair->predetermined_end && $jobfair->predetermined_end > time()) {
 
-             $jobfair->predetermined_ok =1;
 
-         } else {
 
-             $jobfair->predetermined_ok =0;
 
-         }
 
-         $free_standsSurplus = $this->jobfairFloorplanStandRepository->standsTotal($map);
 
-         if ($free_standsSurplus->isEmpty()) {
 
-             $jobfair->standsSurplus = 0;
 
-         } else {
 
-             $free_standsSurplusCount = $free_standsSurplus->toArray();
 
-             $free_count = count($free_standsSurplusCount);
 
-             $positionArr = array_column($free_standsSurplusCount, 'id');
 
-             $listCount = $this->jobfairCompanyRepository->findPositionCount($positionArr);
 
-             if ($listCount->isNotEmpty()) {
 
-                 $positionCount =  $listCount->count();
 
-                 foreach ($listCount as $key => $val) {
 
-                     if ($val->audit == 3) {
 
-                         $positionCount--;
 
-                     }
 
-                 }
 
-             } else {
 
-                 $positionCount = 0;
 
-             }
 
-             $jobfair->standsSurplus = $free_count-$positionCount?$free_count-$positionCount:0;
 
-         }
 
-         $jobfairCompany = $this->jobfairCompanyRepository->findCompany($where, $offset, $limit);
 
-         foreach ($jobfairCompany as $key => $val) {
 
-             $val->jobfairPutJob = $this->jobfairPutJobRepository->getJobfairJob($val->id, $id);
 
-         }
 
-         if ($request->ajax()) {
 
-             return  [
 
-                 'jobfairCompany'=>$jobfairCompany,
 
-                 'jobfair'=>$jobfair,
 
-             ];
 
-         }
 
-         $more = count($jobfairCompany) >= $limit ? true : false;
 
-         $jobsSum =  $this->jobfairPutJobRepository->getNeedPerson($id);
 
-         $needPersonCount = isset($jobsSum['sum']) ? $jobsSum['sum'] : 0;
 
-         $jobsCount = $this->jobfairPutJobRepository->getJobsCount($id);
 
-         return [
 
-             'status'=>1,
 
-             'jobfair'=>$jobfair,
 
-             'jobfairCompany'=>$jobfairCompany,
 
-             'companyCount'=>$companyCount,
 
-             'more'=>$more,
 
-             'needPersonCount'=>$needPersonCount,
 
-             'jobsCount'=>$jobsCount,
 
-             'comCount'=>$comCount,
 
-         ];
 
-     }
 
-     /**职位详情
 
-      * @param $jobfair_id
 
-      * @param $job_id
 
-      * @return array
 
-      */
 
-     public function jobfairShowJob($id)
 
-     {
 
-         $jobInfo = $this->jobfairPutJobRepository->getOne(['id'=>$id]);
 
-         if (!$jobInfo) {
 
-             return ['status'=>0, 'msg'=>'查无此职位!'];
 
-         }
 
-         if ($jobInfo->jobs->ygxs == '363') {
 
-             $jobInfo->jobs->wage_cn = $jobInfo->jobs->wage_min . '元/小时';
 
-         }
 
-         $other_categories = $this->categoryRepository->getCategories();
 
-         //用工形式
 
-         $company_ygxs = array_get($other_categories, 'AIX_ygxs');
 
-         if ($company_ygxs) {
 
-             $ygxs_cn = array_get($company_ygxs, $jobInfo->jobs->ygxs);
 
-             if ($ygxs_cn) {
 
-                 $jobInfo->ygxs_cn = $ygxs_cn['demand'];
 
-             } else {
 
-                 $jobInfo->ygxs_cn = '不限';
 
-             }
 
-         }
 
-         //技能等级
 
-         $techlevels = array_get($other_categories, 'AIX_techlevel');
 
-         if ($techlevels) {
 
-             $techlevel_cn = array_get($techlevels, $jobInfo->jobs->techlevel);
 
-             if ($techlevel_cn) {
 
-                 $jobInfo->techlevel_cn = $techlevel_cn['demand'];
 
-             } else {
 
-                 $jobInfo->techlevel_cn = '不限';
 
-             }
 
-         }
 
-         //试用期
 
-         $syqs = array_get($other_categories, 'zs_syq');
 
-         if ($syqs) {
 
-             if (empty($jobInfo->jobs->syq)) {
 
-                 $jobInfo->syq = 367;
 
-                 $jobInfo->jobs->syq=367;
 
-             }
 
-             $syq_cn = array_get($syqs, $jobInfo->jobs->syq);
 
-             if ($syq_cn) {
 
-                 $jobInfo->syq_cn = $syq_cn['demand'];
 
-             } else {
 
-                 $jobInfo->syq_cn = '无';
 
-             }
 
-         }
 
-         //试用期工资:
 
-         if ($jobInfo->wage == -1) {
 
-             $jobInfo->syqxz_min_cn='面议';
 
-         } else {
 
-             $jobInfo->syqxz_min_cn=$jobInfo->jobs->syqxz_min.'元/月';
 
-         }
 
-         if ($jobInfo->jobfairs->holddate_end > time()) {
 
-             $jobInfo->jobs->predetermined_ok = 1;
 
-         } else {
 
-             $jobInfo->jobs->predetermined_ok = 0;
 
-         }
 
-         if ($jobInfo->jobs->subclass) {
 
-             $jobInfo->jobs->category_cn = get_job_category($jobInfo->jobs->subclass);
 
-         }
 
-         if ($jobInfo->jobs->tag_cn) {
 
-             $jobInfo->jobs->tag_cn = explode(',',$jobInfo->jobs->tag_cn);
 
-         }
 
-         return [
 
-             'status'=>1,
 
-             'jobInfo'=>$jobInfo,
 
-         ];
 
-     }
 
-     /**在线预定页面
 
-      * @param $id
 
-      * @return array
 
-      */
 
-     public function jobfairAppointment($id)
 
-     {
 
-         $jobfair = $this->jobfairRepository->findJobfair(['id'=>$id]);
 
-         if (!$jobfair) {
 
-             return ['status'=>0,'msg'=>"参数错误!"];
 
-         }
 
-         //总展位数
 
-         $where1 = [
 
-             'jobfair_id'=>$id,
 
-         ];
 
-         $jobfair->standsTotal = $this->jobfairFloorplanStandRepository->standsTotal($where1);
 
-         //空余展位数
 
-         $map = [
 
-             'jobfair_id'=>$id,
 
-             'type'=>1
 
-         ];
 
-         $free_standsSurplus = $this->jobfairFloorplanStandRepository->standsTotal($map);
 
-         if ($free_standsSurplus->isEmpty()) {
 
-             $jobfair->standsSurplus = 0;
 
-         } else {
 
-             $free_standsSurplusCount = $free_standsSurplus->toArray();
 
-             $free_count = count($free_standsSurplusCount);
 
-             $positionArr = array_column($free_standsSurplusCount, 'id');
 
-             $listCount = $this->jobfairCompanyRepository->findPositionCount($positionArr);
 
-             if ($listCount->isNotEmpty()) {
 
-                 $positionCount =  $listCount->count();
 
-                 foreach ($listCount as $key => $val) {
 
-                     if ($val->audit == 3) {
 
-                         $positionCount--;
 
-                     }
 
-                 }
 
-             } else {
 
-                 $positionCount = 0;
 
-             }
 
-             $jobfair->standsSurplus = $free_count-$positionCount?$free_count-$positionCount:0;
 
-         }
 
-         //招聘企业数
 
-         $companyList = $this->jobfairCompanyRepository->getComList(['jobfair_id'=>$id,'audit'=>1]);
 
-         if ($companyList->isEmpty()) {
 
-             $jobsCount = 0;
 
-             $needPersonCount = 0;
 
-         } else {
 
-             //招聘职位数
 
-             $companyIdArr = array_column($companyList->toArray(), 'company_id');
 
-             $jobsCount = $this->jobfairPutJobRepository->getJobsCount($id, $companyIdArr);
 
-             //需求人才数
 
-             $jobsSum =  $this->jobfairPutJobRepository->getNeedPerson($id, $companyIdArr);
 
-             $needPersonCount = isset($jobsSum['sum']) ? $jobsSum['sum'] : 0;
 
-         }
 
-         if ($jobfair->predetermined_status == 1 && $jobfair->predetermined_start && $jobfair->predetermined_start < time() && $jobfair->predetermined_end && $jobfair->predetermined_end > time()) {
 
-             $jobfair->predetermined_ok =1;
 
-         } else {
 
-             $jobfair->predetermined_ok =0;
 
-         }
 
-         return [
 
-             'status'=>1,
 
-             'jobfair'=>$jobfair,
 
-             'companyList'=>$companyList,
 
-             'jobsCount'=>$jobsCount,
 
-             'needPersonCount'=>$needPersonCount,
 
-         ];
 
-     }
 
-     public function jobfairAppointmentSave($jobfairInfo, $positionInfo, $user)
 
-     {
 
-         //招聘会是否允许订多个展位
 
-         //查看黑名单
 
-         $blackInfo = $this->jobfairBlackListRepository->getOne(['company_id'=>$user->id]);
 
-         if ($blackInfo && $blackInfo->status ==1 && $blackInfo->remove_time==0) {
 
-             return response()->json(['status'=>0, 'msg'=>"很抱歉,无法预定招聘会。您在招聘会黑名单内!"]);
 
-         }
 
-         if ($this->jobfairCompanyRepository->findWhere(['company_id'=>$user->id,'jobfair_id'=>$jobfairInfo->id,'position_id'=>$positionInfo->id,['audit', '<>', 3]])->isNotEmpty()) {
 
-             return response()->json(['status'=>0, 'msg'=>"您已预定过该展位,不能重复预定"]);
 
-         }
 
-         //允许预订 举办开始日期大于当前日期  预订结束时间大于当前时间  允许在线预订
 
-         if ($jobfairInfo->predetermined_status == 2) {
 
-             return response()->json(['status'=>0, 'msg'=>"很抱歉,招聘会已停止预定"]);
 
-         }
 
-         if (time() > $jobfairInfo->holddate_end) {
 
-             return response()->json(['status'=>0, 'msg'=>"很抱歉,招聘会已结束"]);
 
-         }
 
- //        if ($jobfairInfo->predetermined_status == 1 && ($jobfairInfo->predetermined_start && time() < $jobfairInfo->predetermined_start)) {
 
- //            return response()->json(['status'=>0, 'msg'=>"很抱歉,招聘会未到开始预定时间"]);
 
- //        }
 
- //        if ($jobfairInfo->predetermined_status == 1 && ($jobfairInfo->predetermined_end && time() > $jobfairInfo->predetermined_end)) {
 
- //            return response()->json(['status'=>0, 'msg'=>"很抱歉,招聘会已结束预定"]);
 
- //        }
 
-         if ($jobfairInfo->is_commonweal == 1) {
 
-             $num = $jobfairInfo->jobsfair_num;
 
-             $mySetmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, 1);
 
-             if ($mySetmeal->jobfair_num < $num) {
 
-                 return response()->json(['status' => 0, 'msg' => "很抱歉,您的会员招聘会场次不足。请先升级套餐!"]);
 
-             }
 
-         }
 
-         if ($jobfairInfo->is_commonweal == 2) {
 
-             $num = $jobfairInfo->predetermined_point;
 
-             $myPoints = $this->memberPointRepository->getComPointsById($user->id, 1);
 
-             if ($myPoints->points < $num) {
 
-                 return response()->json(['status' => 0, 'msg' => "很抱歉,您的会员积分不足。请先积分充值!"]);
 
-             }
 
-         }
 
-         $insertData['company_id'] = $user->id;
 
-         $insertData['jobfair_id'] = $jobfairInfo->id;
 
-         $insertData['position_id'] = $positionInfo->id;
 
-         $insertData['pay_type'] = $jobfairInfo->is_commonweal;
 
-         $insertData['position'] = $positionInfo->name;
 
-         DB::beginTransaction();
 
-         try {
 
-             if (!$this->jobfairCompanyRepository->create($insertData)) {
 
-                 throw new \Exception('招聘会预定失败!');
 
-             }
 
-             if ($jobfairInfo->is_commonweal != 3) {
 
-                 $res = $this->payType($jobfairInfo->is_commonweal, $num, $user);
 
-                 if (!$res['status']) {
 
-                     throw new \Exception($res['msg']);
 
-                 }
 
-             }
 
-             DB::commit();
 
-             $this->memberLogRepository->createLog($user,1033,[$insertData['jobfair_id'],$insertData['position_id']]);
 
-             return response()->json(['status'=>1, 'msg'=>"展位已保留,请关注审核结果并及时提交招聘会职位!",'data'=>['positionid'=>$positionInfo->id,'companyname'=>$user->companyname]]);
 
-         } catch (\Exception $e) {
 
-             DB::rollback();
 
-             return response()->json(['status'=>0, 'msg'=>$e->getMessage()]);
 
-         }
 
-     }
 
-     /**场次和积分预定招聘会
 
-      * @param $payType
 
-      * @param $num
 
-      * @param $user
 
-      * @return array
 
-      */
 
-     public function payType($payType, $num, $user)
 
-     {
 
-         //消耗场次
 
-         $data = [];
 
-         if ($payType == 1) {
 
-             $mySetmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, 1);
 
-             $data['jobfair_num'] = $mySetmeal->jobfair_num - $num?$mySetmeal->jobfair_num - $num:0;
 
-             if (!$this->memberSetmealRepository->updateSetmeal($data, $mySetmeal->id)) {
 
-                 return ['status' => 0, 'msg' => '扣除招聘会场次失败!'];
 
-             } else {
 
-                 $members_log['log_uid']=$user->id;
 
-                 $members_log['log_utype']=1;
 
-                 $members_log['log_username']=$user->username;
 
-                 $log_leave=$mySetmeal->jobfair_num-1;
 
-                 $members_log['log_leave'] = $log_leave<0?0:$log_leave;
 
-                 $members_log['log_value'] = '扣除招聘会场次';
 
-                 $members_log['log_source']='网页版';
 
-                 if (!$this->membersSetmealLogRepository->addNew($members_log)) {
 
-                     return ['status' => 0, 'msg' => '添加扣除招聘会场次记录失败!'];
 
-                 } else {
 
-                     return ['status' => 1,];
 
-                 }
 
-             }
 
-         } else {
 
-             //消耗积分
 
-             if (!$this->memberPointRepository->reportDeal($user->id, $user->utype, 2, $num)) {
 
-                 return ['status' => 0, 'msg' => '扣除积分失败!'];
 
-             } else {
 
-                 $handsel['uid'] =$user->id;
 
-                 $handsel['utype'] = 1;
 
-                 $handsel['htype'] = 'yuyue_jobfair';
 
-                 $handsel['htype_cn'] = '扣除招聘会积分';
 
-                 $handsel['operate'] = 2;
 
-                 $handsel['points'] = $num;
 
-                 if (!$this->memberHandselRepository->addNew($handsel)) {
 
-                     return ['status' => 0, 'msg' => '添加扣除积分记录失败!'];
 
-                 } else {
 
-                     return ['status' => 1,];
 
-                 }
 
-             }
 
-         }
 
-     }
 
-     public function jobfairAppointmentJobs($request, $user)
 
-     {
 
-         $resume = $this->resumeRepository->getPersonInfo($user->id);
 
-         if (!$resume) {
 
-             return response()->json(['status'=>0,'type'=>0,'url'=>route('person.resumeAdd'), 'msg'=>"您还没有默认简历,请先去创建简历!"]);
 
-         }
 
-         $data['resume_id'] = $resume->id;
 
-         $data['personal_uid'] = $user->id;
 
-         $data['jobs_id'] = $request['jobsfair_job_id'];
 
-         $data['company_id'] = $request['company_uid'];
 
-         $data['jobfair_id'] = $request['jobfairid'];
 
-         $data['position_id'] = $request['position_id'];
 
-         $jobfair = $this->jobfairRepository->find($request['jobfairid']);
 
-         if ($jobfair->isEmpty ||  $jobfair->holddate_end < time()) {
 
-             return response()->json(['status'=>0, 'msg'=>"招聘会已停止"]);
 
-         }
 
-         if ($this->jobfairPersonalJobsApplyRepository->findWhere(['resume_id'=>$resume->id, 'jobs_id'=>$request['jobsfair_job_id'], 'company_id'=>$request['company_uid'], 'jobfair_id'=>$request['jobfairid'], 'position_id'=>$request['position_id']])->isNotEmpty()) {
 
-             return response()->json(['status'=>0, 'msg'=>"您已预约该职位,请勿重复预约!"]);
 
-         }
 
-         if ($this->jobfairPersonalJobsApplyRepository->create($data)) {
 
-             return response()->json(['status'=>1, 'msg'=>"职位预约成功!"]);
 
-         }
 
-         return response()->json(['status'=>0,'type'=>0 , 'msg'=>"职位预约失败!"]);
 
-     }
 
-     /**页面加载展位信息
 
-      * @param $request
 
-      * @return \Illuminate\Http\JsonResponse
 
-      */
 
-     public function ajaxGetData($data)
 
-     {
 
-         $jobfair_id = isset($data['jobfair_id'])?$data['jobfair_id']:0;
 
-         $floorplan_id = isset($data['floorplan_id'])?$data['floorplan_id']:0;
 
-         //后台传值,不区分预留展位
 
-         $type = isset($data['type'])?$data['type']:0;
 
-         if (!$jobfair_id || !$floorplan_id) {
 
-             return response()->json(['status'=>0,'msg'=>"参数错误"]);
 
-         }
 
-         $jobfairFloorRes = $this->jobfairFloorPlanRepository->find($floorplan_id);
 
-         $jobfairFloorplanStandResult = $this->jobfairFloorplanStandRepository->findWhere(['jobfair_id'=>$jobfair_id, 'floorplan_id'=>$floorplan_id], ['id', 'name','type','left', 'top']);
 
-         if ($jobfairFloorplanStandResult) {
 
-             $jobfairFloorplanStandResult = $jobfairFloorplanStandResult->toArray();
 
-         }
 
-         if (!$jobfairFloorplanStandResult || !$jobfairFloorRes) {
 
-             return response()->json(['status'=>0,'msg'=>"参数错误"]);
 
-         }
 
-         if($type)
 
-         {
 
-             foreach ($jobfairFloorplanStandResult as $key => $val) {
 
-                 $audit = $this->jobfairCompanyRepository->findCom(['position_id'=>$val['id'], 'jobfair_id'=>$jobfair_id,['audit','<>', 3]]);
 
-                 if (!$audit) {
 
-                     $jobfairFloorplanStandResult[$key]['status'] =1;
 
-                 } else {
 
-                     if ($audit->audit == 1) {
 
-                         $jobfairFloorplanStandResult[$key]['status'] = 4;
 
-                         $jobfairFloorplanStandResult[$key]['company'] = $audit;
 
-                     } elseif ($audit->audit == 3) {
 
-                         $jobfairFloorplanStandResult[$key]['status'] = 1;
 
-                     } else {
 
-                         $jobfairFloorplanStandResult[$key]['status'] = 3;
 
-                         $jobfairFloorplanStandResult[$key]['company'] = $audit;
 
-                     }
 
-                 }
 
-             }
 
-         }else{
 
-             foreach ($jobfairFloorplanStandResult as $key => $val) {
 
-                 if ($val['type'] == 2) {
 
-                     $jobfairFloorplanStandResult[$key]['status'] = 2;
 
-                 } else {
 
-                     $audit = $this->jobfairCompanyRepository->findComApi(['position_id'=>$val['id'], 'jobfair_id'=>$jobfair_id,['audit','<>', 3]]);
 
-                     if (!$audit) {
 
-                         $jobfairFloorplanStandResult[$key]['status'] =1;
 
-                     } else {
 
-                         if($audit->companys){
 
-                             unset($audit->companys->password);
 
-                         }
 
-                         if ($audit->audit == 1) {
 
-                             $jobfairFloorplanStandResult[$key]['status'] = 4;
 
-                             $jobfairFloorplanStandResult[$key]['company'] = $audit;
 
-                         } elseif ($audit->audit == 3) {
 
-                             $jobfairFloorplanStandResult[$key]['status'] = 1;
 
-                         } else {
 
-                             $jobfairFloorplanStandResult[$key]['status'] = 3;
 
-                             $jobfairFloorplanStandResult[$key]['company'] = $audit;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         return response()->json(['status'=>1,'imageUrl'=>upload_asset($jobfairFloorRes->bg_images),'value'=>$jobfairFloorplanStandResult]);
 
-     }
 
-     public function getJobfairBlacklistCompany()
 
-     {
 
-         $need_array = [];
 
-         $blacklistCompany = $this->jobfairCompanyRepository->getBlacklistCompany();
 
-         if (!$blacklistCompany->isEmpty()) {
 
-             foreach ($blacklistCompany as $key => $val) {
 
-                 $need_array[] =  $val->company_id;
 
-             }
 
-         }
 
-         $getManyBlackCompany = $this->jobfairCompanyRepository->getManyBlackCompany();
 
-         if (!$getManyBlackCompany->isEmpty()) {
 
-             foreach ($getManyBlackCompany as $key => $val) {
 
-                 if ($val->count>=3) {
 
-                     $need_array[] = $val->company_id;
 
-                 }
 
-             }
 
-         }
 
-         $company_id = array_unique($need_array);
 
-         return $company_id;
 
-     }
 
-     public function getJobfairCompany()
 
-     {
 
-         return $this->jobfairBlackListRepository->threeMonthBlackCompany();
 
-     }
 
-     public function getJobfairOpen()
 
-     {
 
-         $jonfair_id = [];
 
-         $jobfair = $this->jobfairRepository->getJobfairOpen();
 
-         foreach ($jobfair as $key => $val) {
 
-             if ($val->predetermined_start) {
 
-                 if ($val->predetermined_start>time()||$val->predetermined_end<time()) {
 
-                     $jonfair_id[] = $val->id;
 
-                 }
 
-             } else {
 
-                 if ($val->holddate_start<time()) {
 
-                     $jonfair_id[] = $val->id;
 
-                 }
 
-             }
 
-         }
 
-         return $jonfair_id;
 
-     }
 
-     //首页招聘会列表
 
-     public function getJobfairs($params)
 
-     {
 
-         $list = array();
 
-         $where = array(
 
-             array('display','=',1)
 
-         );
 
-         $limit = '';
 
-         if (array_has($params, 'size')) {
 
-             $limit = $params['size'];
 
-         }
 
-         $order = 'holddate_start DESC, if(holddate_end < unix_timestamp(now()),0,1) DESC ,holddate_start ASC';
 
-         if (array_has($params, 'order')) {
 
-             $order = $params['order'];
 
-         }
 
-         $res = $this->jobfairRepository->getJobfairs($where, $order, $limit);
 
-         if ($res->isNotEmpty()) {
 
-             $list = $res;
 
-         }
 
-         return $list;
 
-     }
 
-     //参会企业
 
-     public function jobfairCompany($where,$limit = 20,$page = 1){
 
-         $data = $this->jobfairCompanyRepository->getComPage($where,$limit,$page);
 
-         if(!$data){
 
-             return [];
 
-         }
 
-         return $data;
 
-     }
 
-     //所有职位
 
-     public function jobfairJobs($where,$where1,$page = 20){
 
-         return $this->jobfairPutJobRepository->getJobfairCompanyJobPage($where,$where1,$page);
 
-     }
 
-     //个人预约
 
-     public function jobfairOrders($where,$limit = 20,$page = 1){
 
-         return $this->jobfairPersonalJobsApplyRepository->getPersonApply($where,$limit,$page);
 
-     }
 
-     //面试邀请
 
-     public function jobfairInterview($where,$limit = 20,$page = 1){
 
-         return $this->jobfairPersonalJobsApplyRepository->applyJobsPage($where,$limit,$page);
 
-     }
 
-     public function userCode($user)
 
-     {
 
-         return QrCode::size(250)->generate(route('mobile.qrcode',['hashid'=>hashid_encode($user->id, $user->utype)]));
 
-     }
 
-     public function find($id)
 
-     {
 
-         return $this->jobfairRepository->find($id);
 
-     }
 
- }
 
 
  |