123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <?php
- namespace App\Http\Controllers\Web\Auth;
- use Aix\Sms\Contracts\Smser;
- 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\RegisterValidatorRequest;
- use Closure;
- use Illuminate\Support\Facades\Auth;
- class RegisterController extends WebBaseController
- {
- /**
- * @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() || Auth::guard('web-organization')->check()) {
- if ($request->route()->getName() != 'register.send_email') {
- return redirect(route('home'));
- }
- }
- return $next($request);
- });
- $this->emailService = $emailService;
- $this->authService = $authService;
- }
- public function registerIndex()
- {
- return view('app.auth.register', ['title' => '会员注册']);
- }
- public function registerCompany()
- {
- return view('app.auth.register_company', ['title' => '企业会员注册']);
- }
- public function registerPerson()
- {
- return view('app.auth.register_person', ['title' => '个人会员注册']);
- }
- public function registerOrg()
- {
- return view('app.auth.register_org', ['title' => '机构会员注册']);
- }
- public function showSendEmail($type)
- {
- $user = $type == 1 ? auth('web-company')->user() : auth('web-member')->user();
- return view('app.auth.register_send_email', ['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, config('aix.companyset.setmeal_com.setmeal_com_set.reg_service'));
- $this->taskService->doTask(17);
- $this->emailService->setAuthTag('company')
- ->setCallback('App\Services\Company\CompanyService', 'sendAuthEmailHook', [$registerValidatorRequest->email, $company])
- ->sendAuthMail($registerValidatorRequest->email, EmailService::TEMPLATE_VALIDATION);
- return $this->sendSuccessResponse(['url' => route('register.send_email', ['type' => 1])]);
- }
- public function registerPersonPost(RegisterValidatorRequest $registerValidatorRequest)
- {
- /*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('home')]);
- }
- return $this->sendSuccessResponse(['url' => route('person.index')]);
- }
- $this->emailService->setAuthTag('personal')
- ->setCallback('App\Services\Person\MemberInfoService', 'sendAuthEmailHook', [$registerValidatorRequest->email, $member])
- ->sendAuthMail($registerValidatorRequest->email, EmailService::TEMPLATE_VALIDATION);
- return $this->sendSuccessResponse(['url' => route('register.send_email', ['type' => 2])]);
- }
- public function registerOrgPost(RegisterValidatorRequest $registerValidatorRequest)
- {
- // if (!$this->geetestService->checkGeetest()) {
- // return $this->sendErrorResponse("极验不通过,请重新验证");
- // }
- $org = $this->registerService->registerOrg($registerValidatorRequest->all());
- $this->authService->login($org);
- //$this->membersSetmealService->addMemberSetmeal($org, config('aix.companyset.setmeal_com.setmeal_com_set.reg_service'));
- //$this->taskService->doTask(17);
- $this->emailService->setAuthTag('organization')
- ->setCallback('App\Services\Organization\OrganizationService', 'sendAuthEmailHook', [$registerValidatorRequest->email, $org])
- ->sendAuthMail($registerValidatorRequest->email, EmailService::TEMPLATE_VALIDATION);
- return $this->sendSuccessResponse(['url' => route('register.send_email', ['type' => 3])]);
- }
- public function registerStatus()
- {
- $status = config('aix.system.register.register.close_reg');
- if ($status == 1) {
- return AjaxError("网站暂停会员注册,请稍后再次尝试!");
- } else {
- return AjaxSuccess("");
- }
- }
- }
|