123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- <?php
- namespace App\Http\Controllers\Mobile\Auth;
- use Aix\Sms\Contracts\Smser;
- use App\Http\Controllers\Mobile\MobileBaseController;
- use App\Http\Controllers\Web\WebBaseController;
- use App\Services\Auth\AuthService;
- use App\Services\Auth\RegisterService;
- use App\Services\Common\EmailService;
- use App\Services\Common\GeetestService;
- use App\Services\Common\MembersSetmealService;
- use App\Services\Common\SmsService;
- use App\Services\Common\TaskService;
- use App\Validators\AuthValidatorRequest;
- use App\Validators\RegisterValidatorRequest;
- use Closure;
- use Illuminate\Support\Facades\Auth;
- class RegisterController extends MobileBaseController
- {
- /**
- * @var RegisterService
- */
- private $registerService;
- /**
- * @var GeetestService
- */
- private $geetestService;
- /**
- * @var SmsService
- */
- private $smsService;
- private $taskService;
- private $membersSetmealService;
- /**
- * @var EmailService
- */
- private $emailService;
- /**
- * @var AuthService
- */
- private $authService;
- /**
- * RegisterController constructor.
- * @param AuthService $authService
- * @param EmailService $emailService
- * @param RegisterService $registerService
- * @param MembersSetmealService $membersSetmealService
- * @param TaskService $taskService
- * @param GeetestService $geetestService
- * @param SmsService $smsService
- */
- public function __construct(AuthService $authService, EmailService $emailService, RegisterService $registerService, MembersSetmealService $membersSetmealService, TaskService $taskService, GeetestService $geetestService, SmsService $smsService)
- {
- $this->registerService = $registerService;
- $this->geetestService = $geetestService;
- $this->smsService = $smsService;
- $this->taskService = $taskService;
- $this->membersSetmealService = $membersSetmealService;
- $this->middleware(function ($request, Closure $next) {
- if (Auth::guard('web-member')->check() || Auth::guard('web-company')->check()) {
- if ($request->route()->getName() != 'mobile.register.send_email') {
- if (get_subsite_id() > 0) {
- return redirect(route('jkq.mobile.home'));
- } else {
- return redirect(route('mobile.home'));
- }
- }
- }
- return $next($request);
- });
- $this->emailService = $emailService;
- $this->authService = $authService;
- }
- public function registerIndex()
- {
- return view('mobile.app.auth.register', ['wap_title' => '会员注册']);
- }
- public function registerCompany()
- {
- return view('mobile.app.auth.register_company', ['wap_title' => '企业会员注册']);
- }
- public function registerPerson()
- {
- return view('mobile.app.auth.register_person', ['wap_title' => '个人会员注册']);
- }
- public function registerPersonEmail()
- {
- return view('mobile.app.auth.register_person_email', ['wap_title' => '个人会员注册']);
- }
- public function showSendEmail($type)
- {
- $user = $type == 1 ? auth('web-company')->user() : auth('web-member')->user();
- return view('mobile.app.auth.register_send_email', ['wap_title' => '邮箱激活', 'type' => $type, 'user' => $user]);
- }
- public function checkUnique($utype)
- {
- if ($this->registerService->checkUnique($utype, request()->type, request()->param)) {
- return $this->sendSuccessResponse();
- }
- return $this->sendErrorResponse("error");
- }
- public function registerCompanyPost(RegisterValidatorRequest $registerValidatorRequest)
- {
- // if (!$this->geetestService->checkGeetest()) {
- // return $this->sendErrorResponse("极验不通过,请重新验证");
- // }
- $company = $this->registerService->registerCompany($registerValidatorRequest->all());
- $this->authService->login($company);
- $this->membersSetmealService->addMemberSetmeal($company, 1);
- $this->taskService->doTask(17);
- $this->emailService->setAuthTag('company')->setCheckRoute('mobile.email.check')
- ->setCallback('App\Services\Company\CompanyService', 'sendAuthEmailHook', [$registerValidatorRequest->email, $company])
- ->sendAuthMail($registerValidatorRequest->email, EmailService::TEMPLATE_VALIDATION);
- return $this->sendSuccessResponse(['url' => route('mobile.register.send_email', ['type' => 1])]);
- }
- public function registerPersonPost(RegisterValidatorRequest $registerValidatorRequest, AuthValidatorRequest $request)
- {
- // if (!$this->geetestService->checkGeetest()) {
- // return $this->sendErrorResponse("验证码不通过,请重新验证");
- // }
- if ($registerValidatorRequest->reg_type == 1) {
- if (!$this->smsService->checkAuthSms($registerValidatorRequest->mobile, Smser::TEMPLATE_AUTH_REGISTER, $registerValidatorRequest->mobile_vcode)) {
- return $this->sendErrorResponse("短信验证码不通过,请重新输入");
- }
- }
- $member = $this->registerService->registerPerson($registerValidatorRequest->all());
- $this->authService->login($member);
- if ($registerValidatorRequest->reg_type == 1) {
- $this->taskService->doTask(7);
- if ($registerValidatorRequest->member_status == 3) {
- return $this->sendSuccessResponse(['url' => route('mobile.home')]);
- }
- return $this->sendSuccessResponse([
- 'url' => url($request->session()
- ->pull('url.intended', route('mobile.person.index')))]);
- }
- $this->emailService->setAuthTag('personal')->setCheckRoute('mobile.email.check')
- ->setCallback('App\Services\Person\MemberInfoService', 'sendAuthEmailHook', [$registerValidatorRequest->email, $member])
- ->sendAuthMail($registerValidatorRequest->email, EmailService::TEMPLATE_VALIDATION);
- return $this->sendSuccessResponse(['url' => route('mobile.register.send_email', ['type' => 2])]);
- }
- }
|