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;
- }
- }
|