HomeController.php 9.2 KB

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