JobsController.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: michaelwu
  5. * Date: 2018/10/30
  6. * Time: 11:22
  7. */
  8. namespace App\Http\Controllers\Web\Company;
  9. use App\Http\Controllers\Web\WebBaseController;
  10. use App\Repositories\CompanyContactsRepository;
  11. use App\Repositories\JobsRepository;
  12. use App\Repositories\MemberPointRepository;
  13. use App\Repositories\MemberSetmealRepository;
  14. use App\Repositories\QueueAutoRefreshRepository;
  15. use App\Repositories\RefreshLogRepository;
  16. use App\Repositories\SetmealRepository;
  17. use App\Services\Common\CategoryService;
  18. use App\Services\Common\MembersSetmealService;
  19. use App\Services\Common\SetmealIncrementsService;
  20. use App\Services\Company\CompanyService;
  21. use App\Services\Company\JobsService;
  22. use App\Services\Company\ServiceService;
  23. use App\Services\SubsiteService;
  24. use App\Validators\JobsValidatorRequest;
  25. use Illuminate\Http\Request;
  26. use Illuminate\Support\Facades\Cache;
  27. use Illuminate\Support\Facades\URL;
  28. class JobsController extends WebBaseController
  29. {
  30. /**
  31. * @var JobsService
  32. */
  33. protected $jobsService;
  34. protected $categoryService;
  35. protected $companyService;
  36. protected $memberSetmealRepository;
  37. protected $setmealIncrementsService;
  38. protected $refreshLogRepository;
  39. protected $memberPointRepository;
  40. protected $setmealRepository;
  41. protected $queueAutoRefreshRepository;
  42. protected $serviceService;
  43. protected $subsiteService;
  44. protected $jobsRepository;
  45. protected $companyContactsRepository;
  46. protected $membersSetmealService;
  47. /**
  48. * JobsController constructor.
  49. * @param JobsService $jobsService
  50. * @param CategoryService $categoryService
  51. * @param CompanyService $companyService
  52. * @param $memberSetmealRepository
  53. * @param $setmealIncrementsService
  54. * @param $refreshLogRepository
  55. * @param $memberPointRepository
  56. * @param $setmealRepository
  57. * @param $queueAutoRefreshRepository
  58. * @param $serviceService
  59. * @param $subsiteService
  60. * @param $jobsRepository
  61. * @param $companyContactsRepository
  62. * @param $membersSetmealService
  63. */
  64. public function __construct(MembersSetmealService $membersSetmealService, JobsService $jobsService, CompanyContactsRepository $companyContactsRepository, JobsRepository $jobsRepository, SubsiteService $subsiteService, ServiceService $serviceService, QueueAutoRefreshRepository $queueAutoRefreshRepository, SetmealRepository $setmealRepository, MemberPointRepository $memberPointRepository, RefreshLogRepository $refreshLogRepository, CategoryService $categoryService, CompanyService $companyService, MemberSetmealRepository $memberSetmealRepository, SetmealIncrementsService $setmealIncrementsService)
  65. {
  66. $this->jobsService = $jobsService;
  67. $this->categoryService = $categoryService;
  68. $this->companyService = $companyService;
  69. $this->memberSetmealRepository = $memberSetmealRepository;
  70. $this->setmealIncrementsService = $setmealIncrementsService;
  71. $this->refreshLogRepository = $refreshLogRepository;
  72. $this->memberPointRepository = $memberPointRepository;
  73. $this->setmealRepository = $setmealRepository;
  74. $this->queueAutoRefreshRepository = $queueAutoRefreshRepository;
  75. $this->serviceService = $serviceService;
  76. $this->subsiteService = $subsiteService;
  77. $this->jobsRepository = $jobsRepository;
  78. $this->companyContactsRepository = $companyContactsRepository;
  79. $this->membersSetmealService = $membersSetmealService;
  80. }
  81. /**
  82. * 管理职位
  83. * @param null $type
  84. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  85. */
  86. public function jobsList(Request $request, $type = null)
  87. {
  88. $user = auth('web-company')->user();
  89. $type = isset($request->type) ? $request->type : 0;
  90. $jobs_list = $this->jobsService->list($type, $user);
  91. $jobs_total = $this->jobsService->jobsTotal($user->id);
  92. $company_setmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype);//会员套餐
  93. $stick = $this->setmealIncrementsService->getCat('stick');
  94. $emergency = $this->setmealIncrementsService->getCat('emergency');
  95. $this->serviceService->freeSetmealIsOver($user);
  96. return view('app.jobs.jobs_list', ['jobsList' => $jobs_list, 'type' => $type, 'jobsCount' => $jobs_total, 'company_setmeal' => $company_setmeal, 'stick' => $stick, 'emergency' => $emergency]);
  97. }
  98. /**
  99. * 职位添加
  100. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  101. * @throws \App\Exceptions\ResponseException
  102. */
  103. public function jobsAdd($id = null)
  104. {
  105. $user = auth('web-company')->user();
  106. dd($user);
  107. $jobsExist = $this->jobsRepository->jobsTotal(['company_id' => $user->id, 'id' => $id]);
  108. if (empty($jobsExist) && !empty($id)) {
  109. return $this->showMessage('没有这个职位!', route('jobs.list'), true);
  110. }
  111. //企业联系人数据
  112. $companyContact = $this->companyContactsRepository->getContacts(['company_id' => $user->id]);
  113. //查询该套餐可发布多少职位数及已发布多少职位
  114. $jobs_total = $this->jobsService->jobsTotal($user->id);
  115. $company_setmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype);//会员套餐
  116. //查询企业信息
  117. $companyInfo = $this->companyService->getInfoById($user);
  118. //分站信息
  119. $subsite = $this->subsiteService->getSubsite($user);
  120. $result = [
  121. 'info' => $companyInfo,
  122. 'jobsCount' => $jobs_total,
  123. 'company_setmeal' => $company_setmeal,
  124. 'subsite' => $subsite,
  125. 'companyContact' => $companyContact,
  126. 'user' => $user,
  127. ];
  128. if (isset($id) && $id) {
  129. if (!$result['jobsInfo'] = $this->jobsService->jobsInfo($id)) {
  130. return $this->showMessage('请确认职位是否存在!', route('jobs.list'), true);
  131. }
  132. if ($result['jobsInfo']->subsites->isNotEmpty()) {
  133. $subsiteArr = $result['jobsInfo']->subsites->toArray();
  134. if ($subsiteArr) {
  135. foreach ($subsiteArr as $key => $val) {
  136. $result['sites'][] = $val['subsite_id'];
  137. }
  138. } else {
  139. $result['sites'][] = [];
  140. }
  141. }
  142. }
  143. return view('app.jobs.jobs_add', $result);
  144. }
  145. /**异步获取企业联系人
  146. * @param $id
  147. * @return \Illuminate\Http\JsonResponse
  148. */
  149. public function ajaxGetComContact(Request $request)
  150. {
  151. $id = $request->id;
  152. if (!$id) {
  153. return response()->json(['status' => 0, 'msg' => '无此联系人ID', 'data' => '']);
  154. }
  155. $contact = $this->companyContactsRepository->find($id);
  156. return response()->json(['status' => 1, 'msg' => '成功', 'data' => $contact]);
  157. }
  158. public function ajaxGetDistrict(Request $request)
  159. {
  160. $id = $request->id;
  161. $district_cn = get_district_cn($id);
  162. return response()->json(['status' => 1, 'msg' => '成功', 'data' => $district_cn]);
  163. }
  164. /**
  165. * 职位保存
  166. * @param JobsValidatorRequest $request
  167. * @return \Illuminate\Http\JsonResponse
  168. * @throws \Prettus\Validator\Exceptions\ValidatorException
  169. */
  170. public function jobsSave(JobsValidatorRequest $request)
  171. {
  172. $user = auth('web-company')->user();
  173. $data = $request->except('_token', '_method');
  174. $data['wage_min'] = empty($data['wage_min']) ? 0 : $data['wage_min'];
  175. $data['wage_max'] = empty($data['wage_max']) ? 0 : $data['wage_max'];
  176. $data['map_x'] = empty($data['map_x']) ? '' : $data['map_x'];
  177. $data['map_y'] = empty($data['map_y']) ? '' : $data['map_y'];
  178. $data['is_deformity'] = empty($data['is_deformity']) ? 2 : $data['is_deformity'];
  179. $data['health_type'] = empty($data['health_type']) ? 1 : $data['health_type'];
  180. $data['is_health'] = $user['is_health'];
  181. $data['is_ic'] = $user['is_ic'];
  182. return $this->jobsService->jobsSave($data, $user);
  183. }
  184. /**
  185. * @param Request $request
  186. * @return \Illuminate\Http\JsonResponse
  187. * @throws \Throwable
  188. */
  189. public function jobsAddToJobfair(Request $request)
  190. {
  191. if ($request->method() == 'POST') {
  192. $user = $this->getLoginUser();
  193. return $this->jobsService->jobsAddToJobfair($request, $user);
  194. }
  195. $tip = '您确定要将该职位加入招聘会职位库吗?';
  196. return response()->json(['status' => 1, 'msg' => '', 'data' => ['html' => view('app.company.ajax.ajax_warning', ['tip' => $tip])->render()]]);
  197. }
  198. /**职位刷新
  199. * @param Request $request
  200. * @return \Illuminate\Http\JsonResponse
  201. * @throws \App\Exceptions\ResponseException
  202. * @throws \Throwable
  203. */
  204. public function jobsRefresh(Request $request)
  205. {
  206. $cat = $request->input('service_type', 'auto_refresh_jobs');
  207. $project_id = $request->input('project_id');
  208. $id = $request->id;
  209. if (!$id) {
  210. return response()->json(['status' => 0, 'msg' => "请选择刷新职位!"]);
  211. }
  212. $res = [];
  213. $yid = is_array($id) ? $id : explode(",", $id);
  214. $jobsCount = count($yid);
  215. $user = auth('web-company')->user();
  216. //有无开通刷新服务
  217. $mySetmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype);
  218. if (!$mySetmeal) {
  219. return response()->json(['status' => 0, 'msg' => '您还没有开通服务,请<a target=\"_blank\" href=\"' . route('service.setmeal') . '\">开通</a>!', 'data' => ['show_footer' => 0]]);
  220. }
  221. //服务是否到期
  222. if ($mySetmeal->expire == 1 && $mySetmeal->setmeal_id > 1) {
  223. return response()->json(['status' => 0, 'msg' => '您的服务已经到期,请<a target="_blank" href="' . route('service.setmeal') . '">重新开通</a>!', 'data' => ['show_footer' => 0]]);
  224. }
  225. $where = [
  226. 'uid' => $user->id,
  227. 'utype' => 1,
  228. 'type' => 1006,
  229. 'mode' => 2,
  230. ];
  231. //刷新间隔时间
  232. // $refrestime = $this->refreshLogRepository->getLastRefreshDate($where);
  233. // $duringtime = time() - strtotime($refrestime?$refrestime->created_at:0);
  234. $space = config('aix.companyset.comset.other_set.refresh_jobs_space') * 60;
  235. // if ($space > 0 && $duringtime <= $space) {
  236. // return response()->json(['status' => 0, 'msg' => $space . "秒内不能重复刷新职位", 'data' => ['show_footer' => 0]]);
  237. // }
  238. foreach ($yid as $value) {
  239. if (Cache::has('refresh_jobid_' . $value)) {
  240. // $jobs_intersect = array_intersect(Cache::get('refresh_jobid_'.$value), $yid);
  241. // if ($jobs_intersect) {
  242. $refreshJobName = $this->jobsRepository->findWhereIn('id', [$value], ['jobs_name'])->toArray();
  243. return response()->json(['status' => 0, 'msg' => "【" . implode(',', array_column($refreshJobName, 'jobs_name')) . "】" . $space . "秒内不能重复刷新,请重新选择", 'data' => ['show_footer' => 0]]);
  244. // }
  245. }
  246. }
  247. if ($request->method() == 'POST') {
  248. if (isExpire($mySetmeal)) {
  249. return response()->json(['status' => 0, 'msg' => "提醒:您的套餐已到期,请及时到我的套餐处升级套餐!"]);
  250. }
  251. $payment_name = $request->payment_name ? $request->payment_name : '';
  252. if ($payment_name) {
  253. $is_deductible = $request->input('is_deductible', 0);
  254. if ($is_deductible == 0) {
  255. $deductible = 0;
  256. } else {
  257. $deductible = $request->input('deductible', '');
  258. }
  259. $myPoints = $this->memberPointRepository->getComPointsById($user->id, $user->utype);
  260. $increment_info['name'] = '职位刷新';
  261. $params['jobs_id'] = $yid[0];
  262. $params['type'] = 'jobs_refresh';
  263. //修改吴正科的微信支付的DB写法
  264. $my_setmeal = $this->membersSetmealService->getUserSetmeal($user, '1'); //会员套餐信息
  265. $my_discount = $this->setmealIncrementsService->getIncrementDiscountByArray($cat, $my_setmeal); //套餐折扣
  266. if (empty($project_id)) { //就是单次刷新的支付
  267. $service_need_cash = config('aix.companyset.comsume.comsume_set.refresh_jobs_price');
  268. $increment_info['name'] = "单次刷新职位";
  269. } else {
  270. $increment_info = $this->setmealIncrementsService->getIncrement($project_id);
  271. $service_need_cash = $my_discount > 0 ? round($increment_info->price * $my_discount / 10, 2) : $increment_info->price; //智能刷新所需积分
  272. }
  273. return $this->jobsService->callCashPay($user, $increment_info, $myPoints, 13, $payment_name, $service_need_cash, $is_deductible, $deductible, '', $params);
  274. } else {
  275. //如果是积分兑换刷新或者直接免费刷新
  276. $r = $this->jobsService->jobsRefreshSave($yid, $user, $mySetmeal);
  277. if (!$r['status']) {
  278. return response()->json(['status' => 0, 'msg' => $r['msg']]);
  279. } else {
  280. return response()->json(['status' => 1, 'msg' => '刷新成功!']);
  281. }
  282. }
  283. }
  284. //计算免费刷新次数
  285. $todayCount = $this->refreshLogRepository->getTodayRefreshTimes($where);
  286. if ($jobsCount > 1 && $todayCount >= $mySetmeal->refresh_jobs_free) {
  287. return response()->json(['status' => 2, 'msg' => "您共选中了 <span class=\"font_yellow\">" . $jobsCount . "</span> 条职位,今天免费刷新次数已用完。<br>请单条刷新。", 'data' => ['show_footer' => 0]]);
  288. } elseif ($jobsCount > 1 && ($todayCount + $jobsCount) > $mySetmeal->refresh_jobs_free) {
  289. $surplus = $mySetmeal->refresh_jobs_free - $todayCount;
  290. return response()->json(['status' => 2, 'msg' => "您共选中了 <span class=\"font_yellow\">" . $jobsCount . "</span> 条职位,今天免费刷新次数剩余 <span class=\"font_yellow\">" . $surplus . "</span> 次。<br>请单条刷新。", 'data' => ['show_footer' => 0]]);
  291. }
  292. $myPoints = $this->memberPointRepository->getPointsOne(auth('web-company')->user()->id, 1);
  293. if ($todayCount >= $mySetmeal->refresh_jobs_free) {//免费刷新次数已到
  294. $mode = 'points';
  295. if ($myPoints->points < config('aix.companyset.comsume.comsume_set.refresh_jobs_price') * config('aix.companyset.points.points_set.payment_rate') * $jobsCount) {
  296. $mode = 'mix';
  297. }
  298. } else {
  299. $mode = 'setmeal';
  300. }
  301. if ($mode == 'points' && config('aix.companyset.comsume.comsume_set.refresh_jobs_by_points') == 0) {
  302. $mode = 'mix';
  303. }
  304. if ($mode == 'setmeal') {
  305. $show_footer = 1;
  306. $res['freeTime'] = $mySetmeal->refresh_jobs_free - $todayCount;
  307. } elseif ($mode == 'points') {
  308. $show_footer = 0;
  309. } else {
  310. $show_footer = 0;
  311. $res['max_discount'] = $this->setmealRepository->getMaxDiscount('auto_refresh_jobs');
  312. $res['needCash'] = config('aix.companyset.comsume.comsume_set.refresh_jobs_price') * $jobsCount;
  313. }
  314. $res['open_points_convert'] = config('aix.companyset.comsume.comsume_set.refresh_jobs_by_points');
  315. if ($jobsCount == 1) {
  316. $jobid = $yid[0];
  317. $condition['pid'] = $jobid;
  318. $condition['type'] = 1;
  319. $auto_refresh_log = $this->queueAutoRefreshRepository->findData($condition);
  320. $auto_refresh_log = $auto_refresh_log ? 1 : 0;
  321. $res['id'] = $jobid;
  322. } else {
  323. $auto_refresh_log = 0;
  324. $res['id'] = implode(',', $yid);
  325. }
  326. $res['cat'] = 'auto_refresh_jobs';
  327. $res['increment_arr'] = $this->serviceService->incrementAdd('auto_refresh_jobs', $request->all());
  328. $res['auto_refresh_log'] = $auto_refresh_log;
  329. $res['mySetmeal'] = $mySetmeal;
  330. $res['mode'] = $mode;
  331. $res['jobsCount'] = $jobsCount;
  332. $res['more_times'] = $mySetmeal->refresh_jobs_free + config('aix.companyset.comsume.comsume_set.refresh_jobs_more') - $todayCount; //此中refresh_jobs_more 代表触屏版的额外次数
  333. $res['increment'] = $request->increment ? 1 : 0;
  334. $res['refresh_points'] = config('aix.companyset.comsume.comsume_set.refresh_jobs_price') * config('aix.companyset.points.points_set.payment_rate') * $jobsCount;
  335. $res['myPoints'] = $myPoints->points;
  336. // dd($res);
  337. return response()->json(['status' => 1, 'msg' => view('app.jobs.ajax.ajax_job_refresh', $res)->render(), 'data' => ['show_footer' => $show_footer]]);
  338. }
  339. /**
  340. * 付费刷新
  341. */
  342. public function jobsPayRefresh(Request $request)
  343. {
  344. $jobs_id = $request->jobs_id;
  345. $is_deductible = $request->is_deductible;
  346. $deductible = $request->deductible;
  347. $user = auth('web-company')->user();
  348. $mySetmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype);
  349. return $this->jobsService->jobRefreshPay($jobs_id, $user, $is_deductible, $deductible, $mySetmeal);
  350. }
  351. /**
  352. * 职位关闭
  353. * @param Request $request
  354. * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
  355. */
  356. public function jobsClose(Request $request)
  357. {
  358. if ($request->type && $request->type == 1) {
  359. $user = auth('web-company')->user();
  360. return $this->jobsService->jobsClose($request->id, $user);
  361. }
  362. $tip = "职位关闭后将会暂停招聘,您确定要关闭选中的职位吗?";
  363. return view('app.company.ajax.ajax_warning', ['tip' => $tip]);
  364. }
  365. public function closeAll(Request $request)
  366. {
  367. if ($request->type && $request->type == 1) {
  368. $user = auth('web-company')->user();
  369. return $this->jobsService->jobsClose($request->id, $user);
  370. }
  371. $tip = "职位关闭后将会暂停招聘,您确定要关闭选中的职位吗?";
  372. return view('app.company.ajax.ajax_warning', ['tip' => $tip]);
  373. }
  374. /**
  375. * 恢复职位
  376. * @param Request $request
  377. * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
  378. */
  379. public function jobsShow(Request $request)
  380. {
  381. $user = auth('web-company')->user();
  382. if ($request->type && $request->type == 1) {
  383. return $this->jobsService->jobsShow($request->id, $user);
  384. }
  385. $tip = "职位恢复后将会对外公开招聘,您确定要恢复选中的职位吗?";
  386. return view('app.company.ajax.ajax_warning', ['tip' => $tip]);
  387. }
  388. /**职位删除
  389. * @param Request $request
  390. * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
  391. */
  392. public function jobsDel(Request $request)
  393. {
  394. if ($request->type && $request->type == 1) {
  395. $id = $request->id;
  396. $user = auth('web-company')->user();
  397. return $this->jobsService->jobsDel($id, $user);
  398. }
  399. $tip = "被删除后将无法恢复,您确定要删除选中的职位吗?";
  400. return view('app.company.ajax.ajax_warning', ['tip' => $tip]);
  401. }
  402. /**
  403. * 删除所有职位
  404. * @param Request $request
  405. * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
  406. */
  407. public function delAll(Request $request)
  408. {
  409. if ($request->type && $request->type == 1) {
  410. $id = $request->id;
  411. $user = auth('web-company')->user();
  412. return $this->jobsService->jobsDel($id, $user);
  413. }
  414. $tip = "被删除后将无法恢复,您确定要删除选中的职位吗?";
  415. return view('app.company.ajax.ajax_warning', ['tip' => $tip]);
  416. }
  417. /**紧急招聘
  418. *
  419. */
  420. public function jobsEmergency(Request $request)
  421. {
  422. if (!$request->jobs_id) {
  423. return response()->json(['status' => 0, 'msg' => '参数错误!']);
  424. }
  425. $user = auth('web-company')->user();
  426. $jobsExist = $this->jobsRepository->jobsHas($user, $request->jobs_id);
  427. if (empty($jobsExist)) {
  428. return response()->json(['status' => 0, 'msg' => "没有这个职位"]);
  429. }
  430. $res = $this->serviceService->incrementAdd('emergency', $request->all());
  431. $res['jobs_id'] = $request->jobs_id;
  432. $html = view('app.jobs.ajax.ajax_jobs_stick_emergency', $res)->render();
  433. return response()->json(['status' => 1, 'msg' => $html]);
  434. }
  435. /**职位置顶
  436. * @param Request $request
  437. * @return \Illuminate\Http\JsonResponse
  438. * @throws \Throwable
  439. */
  440. public function jobsStick(Request $request)
  441. {
  442. if (!$request->jobs_id) {
  443. return response()->json(['status' => 0, 'msg' => '参数错误!']);
  444. }
  445. $user = auth('web-company')->user();
  446. $jobsExist = $this->jobsRepository->jobsHas($user, $request->jobs_id);
  447. if (empty($jobsExist)) {
  448. return response()->json(['status' => 0, 'msg' => "没有这个职位"]);
  449. }
  450. $res = $this->serviceService->incrementAdd('stick', $request->all());
  451. $res['jobs_id'] = $request->jobs_id;
  452. $html = view('app.jobs.ajax.ajax_jobs_stick_emergency', $res)->render();
  453. return response()->json(['status' => 1, 'msg' => $html]);
  454. }
  455. /**招聘效果统计===访客统计
  456. * @param Request $request
  457. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View|mixed
  458. * @throws \Throwable
  459. */
  460. public function statisticsVisitor(Request $request)
  461. {
  462. $user = auth('web-company')->user();
  463. if ($request->ajax()) {
  464. return $this->jobsService->statisticsVisitor($request, $user);
  465. }
  466. $company_setmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype);//会员套餐
  467. $res = $this->jobsService->statisticsVisitor($request, $user);
  468. $res['company_setmeal'] = $company_setmeal;
  469. $jobs_total = $this->jobsService->jobsTotal($user->id);
  470. $res['jobsCount'] = $jobs_total;
  471. // dd($res['view_time']);
  472. return view('app.jobs.jobs_statistics_visitor', $res);
  473. }
  474. /**招聘效果统计===职位浏览
  475. * @param Request $request
  476. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View|mixed
  477. * @throws \Throwable
  478. */
  479. public function statisticsViewjobs(Request $request)
  480. {
  481. $user = auth('web-company')->user();
  482. if ($request->ajax()) {
  483. return $this->jobsService->statisticsViewjobs($request, $user);
  484. }
  485. $res = $this->jobsService->statisticsViewjobs($request, $user);
  486. $company_setmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype);//会员套餐
  487. $res['company_setmeal'] = $company_setmeal;
  488. $jobs_total = $this->jobsService->jobsTotal($user->id);
  489. $res['jobsCount'] = $jobs_total;
  490. return view('app.jobs.jobs_statistics_viewjobs', $res);
  491. }
  492. /**招聘效果统计===应聘统计
  493. * @param Request $request
  494. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View|mixed
  495. * @throws \Throwable
  496. */
  497. public function statisticsApply(Request $request)
  498. {
  499. $user = auth('web-company')->user();
  500. if ($request->ajax()) {
  501. return $this->jobsService->statisticsApply($request, $user);
  502. }
  503. $res = $this->jobsService->statisticsApply($request, $user);
  504. $company_setmeal = $this->memberSetmealRepository->getSetmealByUid($user->id, $user->utype);//会员套餐
  505. $res['company_setmeal'] = $company_setmeal;
  506. $jobs_total = $this->jobsService->jobsTotal($user->id);
  507. $res['jobsCount'] = $jobs_total;
  508. return view('app.jobs.jobs_statistics_apply', $res);
  509. }
  510. }