| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: ZhangHao
 
-  * Date: 2019/6/17
 
-  * Time: 11:11
 
-  */
 
- namespace App\Services\Jobfairout;
 
- use App\Models\Subsite;
 
- use App\Repositories\Jobfairout\JobfairoutRepository;
 
- use App\Repositories\Jobfairout\JobfairoutCompanyRepository;
 
- use App\Repositories\Jobfairout\jobfairoutPutJobRepository;
 
- use App\Repositories\Jobfairout\jobfairoutSchoolRepository;
 
- use App\Repositories\MemberSetmealRepository;
 
- use App\Repositories\MemberPointRepository;
 
- use App\Services\Jobfair\JobfairService;
 
- use Illuminate\Support\Facades\DB;
 
- class JobfairoutService
 
- {
 
-     protected $jobfairoutRepository;
 
-     protected $jobfairoutCompanyRepository;
 
-     protected $jobfairoutPutJobRepository;
 
-     protected $memberSetmealRepository;
 
-     protected $memberPointRepository;
 
-     protected $jobfairoutSchoolRepository;
 
-     protected $jobfairService;
 
-     public function __construct(
 
-         JobfairoutRepository $jobfairoutRepository,
 
-         JobfairoutCompanyRepository $jobfairoutCompanyRepository,
 
-         jobfairoutPutJobRepository $jobfairoutPutJobRepository,
 
-         MemberSetmealRepository $memberSetmealRepository,
 
-         MemberPointRepository $memberPointRepository,
 
-         jobfairoutSchoolRepository $jobfairoutSchoolRepository,
 
-         JobfairService $jobfairService
 
-     )
 
-     {
 
-         $this->jobfairoutRepository = $jobfairoutRepository;
 
-         $this->jobfairoutCompanyRepository = $jobfairoutCompanyRepository;
 
-         $this->jobfairoutPutJobRepository = $jobfairoutPutJobRepository;
 
-         $this->memberSetmealRepository = $memberSetmealRepository;
 
-         $this->memberPointRepository = $memberPointRepository;
 
-         $this->jobfairoutSchoolRepository = $jobfairoutSchoolRepository;
 
-         $this->jobfairService = $jobfairService;
 
-     }
 
-     /**近期招聘会
 
-      * @return array
 
-      */
 
-     public function jobfairIndex($user)
 
-     {
 
-         $jobfairList = $this->jobfairoutRepository->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 $id
 
-      * @return array
 
-      */
 
-     public function jobfairShow($id,$user)
 
-     {
 
-         $map1 =['id'=>$id];
 
-         $jobfair = $this->jobfairoutRepository->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;
 
-         }
 
-         $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, ['audit','<>',3]
 
-         ];
 
-         $companyCount = $this->jobfairoutCompanyRepository->getComCount($map);
 
-         $jobfair->countSurplus = $jobfair->number - $companyCount;
 
-         //判断是否预定过
 
-         if($user){
 
-             $jobfair->is_appointment = $this->jobfairoutCompanyRepository->jobfairAppointment(['jobfair_id'=>$id,['audit','<>',3],'company_id'=>$user->id]);
 
-         }else{
 
-             $jobfair->is_appointment = false;
 
-         }
 
-         //学校列表
 
-         $schools = [];
 
-         if($jobfair->school_id){
 
-             $schools = $this->jobfairoutSchoolRepository->getSchool(explode(',',$jobfair->school_id));
 
-         }
 
-         return [
 
-             'status'=>1,
 
-             'jobfair'=>$jobfair,
 
-             'schools'=>$schools,
 
-         ];
 
-     }
 
-     /**招聘会企业
 
-      * @param $request
 
-      * @param $id
 
-      * @return array
 
-      */
 
-     public function jobfairShowCom($request, $id,$user)
 
-     {
 
-         $jobfair = $this->jobfairoutRepository->findJobfair(['id'=>$id]);
 
-         if (!$jobfair) {
 
-             return ['status'=>0, 'msg'=>'查无此招聘会'];
 
-         }
 
-         $map = [
 
-             'jobfair_id'=>$id, ['audit','<>',3]
 
-         ];
 
-         $companyCount = $this->jobfairoutCompanyRepository->getComCount($map);
 
-         $jobfair->countSurplus = $jobfair->number - $companyCount;
 
-         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;
 
-         }
 
-         //判断是否预定过
 
-         if($user){
 
-             $jobfair->is_appointment = $this->jobfairoutCompanyRepository->jobfairAppointment(['jobfair_id'=>$id,['audit','<>',3],'company_id'=>$user->id]);
 
-         }else{
 
-             $jobfair->is_appointment = false;
 
-         }
 
-         $where = ['jobfair_id'=>$id,'audit'=>1];
 
-         $offset = isset($request->page)?$request->page:0;
 
-         $limit = 20;
 
-         $jobfairCompany = $this->jobfairoutCompanyRepository->findCompany($where, $offset, $limit);
 
-         foreach ($jobfairCompany as $key => $val) {
 
-             $where = [
 
-                 'jobfair_id'=>$id,
 
-                 'company_id'=>$val->company_id,
 
-             ];
 
-             $val->jobfairPutJob = $this->jobfairoutPutJobRepository->getJobfairJob($where);
 
-         }
 
-         if ($request->ajax()) {
 
-             return  $jobfairCompany;
 
-         }
 
-         $more = count($jobfairCompany) >= $limit ? true : false;
 
-         $jobsSum = $this->jobfairoutPutJobRepository->getNeedPerson($id);
 
-         $needPersonCount = isset($jobsSum['sum']) ? $jobsSum['sum'] : 0;
 
-         //学校列表
 
-         $schools = [];
 
-         if($jobfair->school_id){
 
-             $schools = $this->jobfairoutSchoolRepository->getSchool(explode(',',$jobfair->school_id));
 
-         }
 
-         return [
 
-             'status'=>1,
 
-             'jobfair'=>$jobfair,
 
-             'jobfairCompany'=>$jobfairCompany,
 
-             'companyCount'=>$companyCount,
 
-             'more'=>$more,
 
-             'schools'=>$schools,
 
-             'needPersonCount'=>$needPersonCount,
 
-         ];
 
-     }
 
-     public function jobfairAppointmentSave($jobfairInfo, $user)
 
-     {
 
-         //允许预订 举办开始日期大于当前日期  预订结束时间大于当前时间  允许在线预订
 
-         if ($jobfairInfo->predetermined_status == 2) {
 
-             return response()->json(['status'=>0, 'msg'=>"很抱歉,招聘会已停止预定"]);
 
-         }
 
-         if (time() > $jobfairInfo->holddate_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['pay_type'] = $jobfairInfo->is_commonweal;
 
-         DB::beginTransaction();
 
-         try {
 
-             if (!$this->jobfairoutCompanyRepository->create($insertData)) {
 
-                 throw new \Exception('招聘会预定失败!');
 
-             }
 
-             if ($jobfairInfo->is_commonweal != 3) {
 
-                 $res = $this->jobfairService->payType($jobfairInfo->is_commonweal, $num, $user);
 
-                 if (!$res['status']) {
 
-                     throw new \Exception($res['msg']);
 
-                 }
 
-             }
 
-             DB::commit();
 
-             return response()->json(['status'=>1, 'msg'=>"注意:恭喜您,预定成功,请到定展记录里填写 <span style='color:#FC4C4E;'> 单位信息、职位信息、参会人</span>",'data'=>['companyname'=>$user->companyname]]);
 
-         } catch (\Exception $e) {
 
-             DB::rollback();
 
-             return response()->json(['status'=>0, 'msg'=>$e->getMessage()]);
 
-         }
 
-     }
 
-     /**职位详情
 
-      * @param $jobfair_id
 
-      * @param $job_id
 
-      * @return array
 
-      */
 
-     public function jobfairShowJob($id)
 
-     {
 
-         $jobInfo = $this->jobfairoutPutJobRepository->getOne(['id'=>$id]);
 
-         if (!$jobInfo) {
 
-             return ['status'=>0, 'msg'=>'查无此职位!'];
 
-         }
 
-         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,
 
-         ];
 
-     }
 
-     public function getJobfairOpen()
 
-     {
 
-         $jonfair_id = [];
 
-         $jobfair = $this->jobfairoutRepository->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;
 
-     }
 
- }
 
 
  |