HomeController.php 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?php
  2. namespace App\Http\Controllers\Mobile;
  3. use App\Models\Member;
  4. use App\Services\Auth\AuthService;
  5. use App\Services\Auth\RegisterService;
  6. use App\Services\Common\CurlService;
  7. use App\Services\Content\LinkService;
  8. use App\Services\HomeService;
  9. use App\Services\Company\JobsService;
  10. use App\Services\Common\CategoryService;
  11. use App\Services\Company\CompanyDownResumeService;
  12. use App\Services\Common\SearchService;
  13. use App\Services\Person\ResumeService;
  14. use App\Services\Company\CompanyService;
  15. use App\Services\Jobfair\JobfairService;
  16. use App\Services\Content\NoticeServer;
  17. use App\Services\Content\ArticleService;
  18. use App\Services\Common\HotWordService;
  19. use App\Wechat\WechatParam;
  20. use Illuminate\Http\Request;
  21. use Illuminate\Support\Facades\Cookie;
  22. use Illuminate\Support\Facades\Log;
  23. class HomeController extends MobileBaseController
  24. {
  25. protected $LinkService;
  26. protected $subsite_id;
  27. protected $homeService;
  28. protected $jobsService;
  29. protected $categoryService;
  30. protected $companyDownResumeService;
  31. protected $searchService;
  32. protected $resumeService;
  33. protected $companyService;
  34. protected $jobfairService;
  35. protected $noticeServer;
  36. protected $articleService;
  37. protected $hotWordService;
  38. /**
  39. * HomeController constructor.
  40. * @param $LinkService
  41. * @param $homeService
  42. * @param $jobsService
  43. * @param $categoryService
  44. * @param $companyDownResumeService
  45. * @param $searchService
  46. * @param $resumeService
  47. * @param $companyService
  48. * @param $jobfairService
  49. * @param $noticeServer
  50. * @param $articleService
  51. * @param $hotWordService
  52. */
  53. public function __construct(LinkService $LinkService, HomeService $homeService, JobsService $jobsService, CategoryService $categoryService, CompanyDownResumeService $companyDownResumeService, SearchService $searchService, ResumeService $resumeService, CompanyService $companyService, JobfairService $jobfairService, NoticeServer $noticeServer, ArticleService $articleService, HotWordService $hotWordService)
  54. {
  55. $this->LinkService = $LinkService;
  56. $this->homeService = $homeService;
  57. $this->jobsService = $jobsService;
  58. $this->categoryService = $categoryService;
  59. $this->companyDownResumeService = $companyDownResumeService;
  60. $this->searchService = $searchService;
  61. $this->resumeService = $resumeService;
  62. $this->companyService = $companyService;
  63. $this->jobfairService = $jobfairService;
  64. $this->noticeServer = $noticeServer;
  65. $this->articleService = $articleService;
  66. $this->hotWordService = $hotWordService;
  67. }
  68. /**
  69. * Show the application dashboard.
  70. *
  71. * @return \Illuminate\Http\Response
  72. */
  73. public function index(Request $request, AuthService $authService, RegisterService $registerService)
  74. {
  75. if ($user = auth('web-member')->user()) {
  76. $userInfo = $this->homeService->getUserInfo($user);
  77. } elseif ($user = auth('web-company')->user()) {
  78. $userInfo = $this->homeService->getUserInfo($user);
  79. } else {
  80. $userInfo = [];
  81. }
  82. //闽政通
  83. $is_mzt = 0;
  84. $user_token = $request->get('USER_TOKEN');
  85. $user_id = $request->get('USER_ID');
  86. if (!empty($user_token) && !empty($user_id)) {
  87. //闽政通隐藏头部
  88. $is_mzt = 1;
  89. //默认注册用户
  90. if (empty($userInfo)) {
  91. $arrContextOptions = [
  92. 'ssl' => [
  93. 'verify_peer' => false,
  94. 'verify_peer_name' => false,
  95. ],
  96. ];
  97. $minJson = file_get_contents("https://192.168.71.209/userinfo.aspx?USER_TOKEN={$user_token}&USER_ID={$user_id}", false, stream_context_create($arrContextOptions));
  98. if ($minJson) {
  99. $minJson = json_decode($minJson, true);
  100. $user_mobile = $minJson['data']['USER_MOBILE'];
  101. $member = Member::where('mobile', '=', $user_mobile)->orderBy('id', 'desc')->first();
  102. if ($member) {
  103. //登录
  104. $authService->login($member, 1);
  105. } else {
  106. // 注册
  107. $member = $registerService->registerPerson([
  108. 'reg_type' => 1,
  109. 'mobile' => $user_mobile,
  110. 'password' => '000000',
  111. 'utype' => 2,
  112. 'reg_source' => 2,
  113. 'member_status' => 0,
  114. ]);
  115. $member->email = empty($minJson['data']['USER_EMAIL']) ? '' : $minJson['data']['USER_EMAIL'];
  116. $member->username = $minJson['data']['USER_NAME'];
  117. $member->save();
  118. $authService->login($member, 1);
  119. }
  120. }
  121. $user = auth('web-member')->user();
  122. $userInfo = $this->homeService->getUserInfo($user);
  123. }
  124. }
  125. $time = $this->homeService->getTime();
  126. //公告公示
  127. $notice_filter = [
  128. 'titlelen' => 14,
  129. 'dot' => '...',
  130. 'size' => 9,
  131. 'type_id' => 1,
  132. ];
  133. $notices = $this->noticeServer->getNotices($notice_filter);
  134. //单位招聘
  135. $articles1_map = [
  136. 'type_id' => [59],
  137. 'limit' => 8,
  138. 'titlelen' => 15,
  139. 'dot' => '...',
  140. ];
  141. $articles1 = $this->articleService->getArticleCache($articles1_map, 'home');
  142. //公告公示
  143. $articles2_map = [
  144. 'type_id' => [58],
  145. 'limit' => 8,
  146. 'titlelen' => 15,
  147. 'dot' => '...',
  148. ];
  149. $articles2 = $this->articleService->getArticleCache($articles2_map, 'home');
  150. //知名企业
  151. $seatmeal_filter = [
  152. 'jobs_num' => 2,
  153. 'companynamelen' => 8,
  154. 'dot' => '...',
  155. 'size' => 9,
  156. 'seatmeal' => 1,
  157. ];
  158. $seatmeal_companies = $this->searchService->searchSeatmealCompanies($seatmeal_filter);
  159. $emergency_jobs = $this->searchService->searchEmergencyJobs(5); //紧急招聘
  160. $recommend_jobs = $this->searchService->searchRecommendJobs(5, $this->getUser(), 'show_other'); //推荐职位
  161. $newJobs = $this->searchService->searchNewJobs(5); //最新招聘
  162. $hotWords = $this->hotWordService->getHotWords(['type' => 1], 'list_order desc,w_hot desc', '12');
  163. $return_data = [
  164. 'userInfo' => $userInfo,
  165. 'time' => $time,
  166. 'notices' => $notices,
  167. 'articles1' => $articles1,
  168. 'articles2' => $articles2,
  169. 'seatmeal_companies' => $seatmeal_companies,
  170. 'newJobs' => $newJobs,
  171. 'emergency_jobs' => $emergency_jobs,
  172. 'recommend_jobs' => $recommend_jobs,
  173. 'user' => $this->getUser(),
  174. 'params' => [],
  175. 'hotWords' => $hotWords,
  176. 'search_type' => 'jobs_commpany',
  177. 'is_mzt' => $is_mzt,
  178. ];
  179. if (get_subsite_id() > 0) {
  180. return view('mobile.app.jkq.index', $return_data);
  181. }
  182. return view('mobile.app.index', $return_data);
  183. }
  184. public function getUser()
  185. {
  186. $user = [];
  187. if (auth('web-member')->check()) {
  188. $user = auth('web-member')->user();
  189. } elseif (auth('web-company')->check()) {
  190. $user = auth('web-company')->user();
  191. }
  192. return $user;
  193. }
  194. /*//推荐职位
  195. public function getRecommendJobs($limit = 10)
  196. {
  197. $recommend_job_items = array();
  198. $recommend_where = $this->jobsService->getRecommendWhere();
  199. $recommend_order = $this->jobsService->getRecommendOrder($this->getUser());
  200. $recommend_job_lists = $this->searchService->search('Job', $recommend_where, $recommend_order, '', $limit);
  201. if ($recommend_job_lists->total()>0) {
  202. $recommend_job_items = $this->jobsService->dealjobFilelds($recommend_job_lists->items(), array(), $limit);
  203. }
  204. return $recommend_job_items;
  205. }*/
  206. /*//最新招聘
  207. public function getNewJobs($limit, $page = '')
  208. {
  209. $where[] = array('valid','=',1);
  210. $where[] = array('display','=',1);
  211. if (config('aix.companyset.comset.show_set.jobs_display')==1) {
  212. $where[] = array('audit','=',1);
  213. } else {
  214. $where[] = array('audit','<>',3);
  215. }
  216. $where[] = array('subsite_ids','=',get_subsite_id());
  217. $order = array('refresh_time'=>'desc');
  218. $new_job_lists = $this->searchService->search('Job', $where, $order, '', $limit, $page);
  219. $list = array();
  220. if ($new_job_lists->total()>0) {
  221. $list = $this->jobsService->dealjobFilelds($new_job_lists->items(), array(), $limit);
  222. }
  223. return $list;
  224. }*/
  225. }