JobfairController.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. <?php
  2. namespace App\Http\Controllers\Mobile\Person;
  3. use App\Http\Controllers\Mobile\MobileBaseController;
  4. use App\Models\PersonJobsSubscribe;
  5. use App\Services\Common\CategoryService;
  6. use App\Services\Common\EmailService;
  7. use App\Services\Common\PayService;
  8. use App\Services\Common\SmsService;
  9. use App\Services\Company\CompanyInterviewService;
  10. use App\Services\Jobfair\JobfairPersonalJopApplyService;
  11. use App\Services\Person\MemberInfoService;
  12. use App\Services\Person\MemberPointService;
  13. use App\Services\Person\MemberService;
  14. use App\Services\Person\PersonFavoriteService;
  15. use App\Services\Person\PersonJobsApplyService;
  16. use App\Services\Person\PersonJobsSubscribeService;
  17. use App\Services\Person\ResumePrivacyService;
  18. use App\Services\Person\ResumeService;
  19. use Illuminate\Http\Request;
  20. use App\Repositories\Jobfair\JobfairCompanyRepository;
  21. use App\Repositories\Jobfair\JobfairRepository;
  22. use App\Services\Jobfair\JobfairService;
  23. class JobfairController extends MobileBaseController
  24. {
  25. /**
  26. * @var ResumeService
  27. */
  28. protected $ResumeService;
  29. protected $ResumePrivacyService;
  30. protected $companyInterviewService;
  31. protected $personalJobsApplyService;
  32. protected $memberPointService;
  33. protected $personFavoriteService;
  34. protected $memberInfoService;
  35. protected $memberService;
  36. protected $smsService;
  37. protected $emailService;
  38. protected $payService;
  39. protected $jobfairPersonalJopApplyService;
  40. protected $jobfairCompanyRepository;
  41. protected $jobfairRepository;
  42. protected $jobfairService;
  43. protected $personJobsSubscribeService;
  44. protected $categoryService;
  45. public function __construct(
  46. ResumeService $ResumeService,
  47. ResumePrivacyService $ResumePrivacyService,
  48. CompanyInterviewService $companyInterviewService,
  49. PersonJobsApplyService $personalJobsApplyService,
  50. MemberPointService $memberPointService,
  51. PersonFavoriteService $personFavoriteService,
  52. MemberInfoService $memberInfoService,
  53. MemberService $memberService,
  54. SmsService $smsService,
  55. EmailService $emailService,
  56. PayService $payService,
  57. JobfairPersonalJopApplyService $jobfairPersonalJopApplyService,
  58. JobfairCompanyRepository $jobfairCompanyRepository,
  59. JobfairRepository $jobfairRepository,
  60. JobfairService $jobfairService,
  61. PersonJobsSubscribeService $personJobsSubscribeService,
  62. CategoryService $categoryService
  63. )
  64. {
  65. $this->ResumeService = $ResumeService;
  66. $this->ResumePrivacyService = $ResumePrivacyService;
  67. $this->companyInterviewService = $companyInterviewService;
  68. $this->personalJobsApplyService = $personalJobsApplyService;
  69. $this->memberPointService = $memberPointService;
  70. $this->personFavoriteService = $personFavoriteService;
  71. $this->memberInfoService = $memberInfoService;
  72. $this->memberService = $memberService;
  73. $this->smsService = $smsService;
  74. $this->emailService = $emailService;
  75. $this->payService = $payService;
  76. $this->jobfairPersonalJopApplyService = $jobfairPersonalJopApplyService;
  77. $this->jobfairCompanyRepository = $jobfairCompanyRepository;
  78. $this->jobfairRepository = $jobfairRepository;
  79. $this->jobfairService = $jobfairService;
  80. $this->personJobsSubscribeService = $personJobsSubscribeService;
  81. $this->categoryService = $categoryService;
  82. }
  83. //判断是哪场招聘会
  84. public function jobfairOpen(){
  85. $where = [
  86. ['holddate_start', '<', strtotime("+60 minute")],
  87. ['holddate_end', '>', time()],
  88. ['display', '=', 1],
  89. ['subsite_id', '=', get_subsite_id()],
  90. ];
  91. $allJobfair= $this->jobfairRepository->getOpenJobfair($where);
  92. $oneJobfair = $this->jobfairRepository->getOneOpenJobfair($where);
  93. if(count($allJobfair)>1){
  94. $html = view('mobile.app.person.jobfair.ajax_open_jabfair', ['allJobfair'=>$allJobfair,'oneJobfair'=>$oneJobfair])->render();
  95. $return_data = array('status'=>2, 'html' => $html);
  96. return response()->json($return_data);
  97. }elseif(count($allJobfair) == 1){
  98. $return_data = array('status'=>1,'jobfair_id'=>$allJobfair[0]->id);
  99. return response()->json($return_data);
  100. }else{
  101. $return_data = array('status'=>0,'error'=>'暂无举办中的招聘会');
  102. return response()->json($return_data);
  103. }
  104. }
  105. public function index(Request $request)
  106. {
  107. $jobfair_id = $request->jobfair_id ;
  108. $info = $this->jobfairCompanyRepository->getComCount($jobfair_id);
  109. $where = [
  110. 'jobfair_id'=>$jobfair_id,
  111. 'audit'=>'1'
  112. ];
  113. $companys = $this->jobfairService->jobfairCompany($where);
  114. $where = [
  115. 'jobfair_id'=>$jobfair_id,
  116. ];
  117. $where1=[
  118. 'audit'=>1,
  119. 'display'=>1
  120. ];
  121. $jobs = $this->jobfairService->jobfairJobs($where,$where1);
  122. $user = auth('web-member')->user();
  123. $where = [
  124. 'personal_uid'=>$user->id,
  125. 'jobfair_id'=>$jobfair_id,
  126. 'is_apply'=>1
  127. ];
  128. $orders = $this->jobfairService->jobfairOrders($where);
  129. $where = [
  130. 'personal_uid'=>$user->id,
  131. 'jobfair_id'=>$jobfair_id,
  132. ];
  133. $interview = $this->jobfairService->jobfairInterview($where);
  134. if(!$info){
  135. return back()->with(['error'=>'招聘会出错']);
  136. }
  137. return view('mobile.app.person.jobfair.index',['info'=>$info,'companys'=>$companys,'jobs'=>$jobs,'orders'=>$orders,'interview'=>$interview,'jobfair_id'=>$jobfair_id]);
  138. }
  139. public function jobfairCompany(Request $request)
  140. {
  141. $jobfair_id = $request->jobfair_id ;
  142. $page = $request->page ? $request->page : 1;
  143. $limit = 20;
  144. $where = [
  145. 'jobfair_id'=>$jobfair_id,
  146. 'audit'=>'1'
  147. ];
  148. if($request->ajax()){
  149. $data = $this->jobfairService->jobfairCompany($where,$limit,$page);
  150. if($data->isEmpty()){
  151. return response()->json(['status'=>0]);
  152. }else{
  153. return response()->json(['status'=>1,'data'=>view('mobile.app.person.jobfair.ajax_jobfair_company', ['list_items'=> $data])->render()]);
  154. }
  155. }else{
  156. $mobile_dropload = false;
  157. $data = $this->jobfairService->jobfairCompany($where,$limit,$page);
  158. $list_items = array();
  159. if($data->lastPage() > $data->currentPage()){
  160. $mobile_dropload = true;
  161. }
  162. }
  163. return view('mobile.app.person.jobfair.jobfair_company',['data'=>$data,'mobile_dropload'=>$mobile_dropload,'list_items'=>$list_items]);
  164. }
  165. public function jobfairJobs(Request $request)
  166. {
  167. $jobfair_id = $request->jobfair_id ;
  168. $page = $request->page ? $request->page : 1;
  169. $limit = 20;
  170. $where=[
  171. 'jobfair_id'=>$jobfair_id,
  172. ];
  173. $where1=['audit'=>'1', 'display'=>1];
  174. if($request->ajax()){
  175. $data = $this->jobfairService->jobfairJobs($where,$where1,$limit,$page);
  176. if($data->isEmpty()){
  177. return response()->json(['status'=>0]);
  178. }else{
  179. return response()->json(['status'=>1,'data'=>view('mobile.app.person.jobfair.ajax_jobfair_jobs', ['list_items'=> $data])->render()]);
  180. }
  181. }else{
  182. $mobile_dropload = false;
  183. $data = $this->jobfairService->jobfairJobs($where,$where1,$limit,$page);
  184. $list_items = array();
  185. if($data->lastPage() > $data->currentPage()){
  186. $mobile_dropload = true;
  187. }
  188. }
  189. return view('mobile.app.person.jobfair.jobfair_jobs',['data'=>$data,'mobile_dropload'=>$mobile_dropload,'list_items'=>$list_items]);
  190. }
  191. public function jobfairOrder(Request $request)
  192. {
  193. $jobfair_id = $request->jobfair_id ;
  194. $page = $request->page ? $request->page : 1;
  195. $limit = 20;
  196. $user = auth('web-member')->user();
  197. $where = [
  198. 'personal_uid'=>$user->id,
  199. 'jobfair_id'=>$jobfair_id,
  200. 'is_apply'=>1
  201. ];
  202. if($request->ajax()){
  203. $data = $this->jobfairService->jobfairOrders($where,$limit,$page);
  204. if($data->isEmpty()){
  205. return response()->json(['status'=>0]);
  206. }else{
  207. return response()->json(['status'=>1,'data'=>view('mobile.app.person.jobfair.ajax_jobfair_order', ['list_items'=> $data])->render()]);
  208. }
  209. }else{
  210. $mobile_dropload = false;
  211. $data = $this->jobfairService->jobfairOrders($where,$limit,$page);
  212. $list_items = array();
  213. if($data->lastPage() > $data->currentPage()){
  214. $mobile_dropload = true;
  215. }
  216. }
  217. return view('mobile.app.person.jobfair.jobfair_order',['data'=>$data,'mobile_dropload'=>$mobile_dropload,'list_items'=>$list_items]);
  218. }
  219. public function jobfairInterview(Request $request){
  220. $jobfair_id = $request->jobfair_id ;
  221. $user = auth('web-member')->user();
  222. $page = $request->page ? $request->page : 1;
  223. $limit = 20;
  224. $where = [
  225. 'personal_uid'=>$user->id,
  226. 'jobfair_id'=>$jobfair_id,
  227. ];
  228. if($request->ajax()){
  229. $data = $this->jobfairService->jobfairInterview($where,$limit,$page);
  230. if($data->isEmpty()){
  231. return response()->json(['status'=>0]);
  232. }else{
  233. return response()->json(['status'=>1,'data'=>view('mobile.app.person.jobfair.ajax_jobfair_interview', ['list_items'=> $data])->render()]);
  234. }
  235. }else{
  236. $mobile_dropload = false;
  237. $data = $this->jobfairService->jobfairInterview($where,$limit,$page);
  238. $list_items = array();
  239. if($data->lastPage() > $data->currentPage()){
  240. $mobile_dropload = true;
  241. }
  242. }
  243. return view('mobile.app.person.jobfair.jobfair_interview',['data'=>$data,'mobile_dropload'=>$mobile_dropload,'list_items'=>$list_items]);
  244. }
  245. public function userCode()
  246. {
  247. $res = $this->jobfairService->userCode(auth('web-member')->user());
  248. return view('mobile.app.person.user_code',['wap_title'=>'我的二维码','user_code'=>$res]);
  249. }
  250. public function jobsSubscribe(Request $request)
  251. {
  252. $res = $this->personJobsSubscribeService->getSubscribeByuid(auth('web-member')->user());
  253. $count = $this->personJobsSubscribeService->getSubscribeCount(auth('web-member')->user());
  254. if ($request->ajax()) {
  255. if ($res->lastPage() < $res->currentPage()) {
  256. return response()->json(['status'=>0]);
  257. }
  258. return response()->json([
  259. 'status'=>1,
  260. 'data'=>view('mobile.app.person.ajax_tpl.ajax_subscribe',
  261. ['content'=>$res])->render()]);
  262. }
  263. return view('mobile.app.person.jobs_subscribe', ['content'=>$res,'count'=>$count,'wap_title'=>'职位订阅器']);
  264. }
  265. public function jobsSubscribeEdit()
  266. {
  267. $wap_title = '新建订阅器';
  268. if(request()->id){
  269. $wap_title = '修改订阅器';
  270. $back_url = \Illuminate\Support\Facades\URL::previous();
  271. $sub_info = PersonJobsSubscribe::find(request()->id);
  272. if(!$sub_info){
  273. return $this->showMessage('对不起,您只能查看自己的职位订阅器!', $back_url, true, '上一页', '3');
  274. }
  275. if($sub_info->uid!=auth('web-member')->user()->id){
  276. return $this->showMessage('对不起,您只能查看自己的职位订阅器!', $back_url, true, '上一页', '3');
  277. }
  278. }
  279. $res = $this->personFavoriteService->getJobsSubEdit(request()->id);
  280. $district = $this->categoryService->getDefaultDistrict();
  281. return view('mobile.app.person.jobs_subscribe_edit', ['content'=>$res['sub'],'defaultCity'=>$district->defaultCity,'wap_title'=>$wap_title]);
  282. }
  283. }