LoginController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Mobile\DouyinRecruit;
  3. use App\Http\Controllers\Mobile\MobileBaseController;
  4. use App\Models\DouyinRecruit\CompanyEmployee;
  5. use App\Services\Common\WechatService;
  6. class LoginController extends MobileBaseController
  7. {
  8. private $wechatService;
  9. public function __construct(WechatService $wechatService)
  10. {
  11. $this->wechatService = $wechatService;
  12. }
  13. /**
  14. * 登录跳转
  15. */
  16. public function index($company_id)
  17. {
  18. $wechat_url = "https://open.weixin.qq.com/connect/oauth2/authorize?"
  19. . "appid=" . subsite_config('aix.system.oauth.wechat_official.app_id')
  20. . "&redirect_uri=" . urlencode(route('mobile.douyin_recruit.auth'))
  21. . "&response_type=code&scope=snsapi_userinfo&state=" . $company_id . "#wechat_redirect";
  22. return redirect($wechat_url);
  23. }
  24. /**
  25. * 登录
  26. */
  27. public function auth()
  28. {
  29. $officialAccount = $this->wechatService->getOfficialAccount();
  30. $wechatUser = $officialAccount->oauth->user()->getOriginal();
  31. $open_id = $wechatUser['openid'];
  32. //验证用户
  33. $emp = CompanyEmployee::where('open_id', $open_id)->first();
  34. if (empty($emp)) {
  35. $company_id = request()->get('state');
  36. $emp = CompanyEmployee::create(['open_id' => $open_id, 'create_time' => time(), 'company_id' => $company_id]);
  37. }
  38. //验证信息
  39. if (empty($emp['name'])) {
  40. $url = route('mobile.douyin_recruit.emp.register', ['id' => $emp['id']]);
  41. return redirect($url);
  42. }
  43. $url = route('mobile.douyin_recruit.emp.info', ['id' => $emp['id']]);
  44. return redirect($url);
  45. }
  46. }