| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019/3/28
- * Time: 14:30
- */
- namespace App\Http\Controllers\Web\Hardware\Aio;
- use Aix\Sms\Contracts\Smser;
- use App\Exceptions\ResponseException;
- use App\Http\Controllers\Web\WebBaseController;
- use App\Models\Member;
- use App\Models\MemberInfo;
- use App\Models\Sms;
- use App\Services\Auth\AuthService;
- use App\Services\Auth\RegisterService;
- use App\Services\Common\SmsService;
- use App\Services\Person\MemberService;
- use App\Repositories\MemberInfoRepository;
- use App\Repositories\SmsRepository;
- use App\Validators\AuthValidatorRequest;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- class LoginController extends WebBaseController
- {
- protected $authService;
- protected $memberService;
- protected $smsService;
- protected $registerService;
- protected $memberInfoRepository;
- protected $smsRepository;
- public function __construct(AuthService $authService, MemberService $memberService, SmsService $smsService, RegisterService $registerService,MemberInfoRepository $memberInfoRepository,SmsRepository $smsRepository)
- {
- $this->authService = $authService;
- $this->memberService = $memberService;
- $this->smsService = $smsService;
- $this->registerService = $registerService;
- $this->memberInfoRepository = $memberInfoRepository;
- $this->smsRepository = $smsRepository;
- }
- public function loginByAccount(AuthValidatorRequest $request)
- {
- if (!$member=$this->authService->loginByAccount($request->account, $request->password, $request->autoLogin)) {
- return $this->sendErrorResponse("用户名或密码错误");
- }
- if ($member->status == 0) {
- Auth::guard('web-member')->logout();
- return $this->sendErrorResponse("你的账号处于封禁状态, 请联系管理员");
- }
- return $this->sendSuccessResponse(['redirect_url'=>url($request->session()->pull('url.intended',
- route('hardware.aio.index')))]);
- }
- public function login()
- {
- return view('app.hardware.aio.login');
- }
- public function account()
- {
- return view('app.hardware.aio.account');
- }
- public function card()
- {
- return view('app.hardware.aio.card');
- }
- public function check(Request $request)
- {
- $cardno = $request->cardno;
- if (!$cardno) {
- throw new ResponseException('身份证读取失败!');
- }
- $memberInfo = MemberInfo::where(['id_card'=>$cardno])->first();
- if (!$memberInfo && config('aix.system.register.register.close_reg') == 0) {
- return $this->sendSuccessResponse(['status'=>0,'id_card'=>$cardno]);
- } elseif(!$memberInfo && config('aix.system.register.register.close_reg') == 1)
- {
- return $this->sendSuccessResponse(['status'=>-1]);
- }
- $member = Member::find($memberInfo->uid);
- $this->authService->login($member, 1);
- return $this->sendSuccessResponse(['status'=>1,'redirect_url'=>url($request->session()->pull('url.intended',
- route('hardware.aio.index')))]);
- }
- public function register(Request $request)
- {
- if($request->ajax()) {
- if(config('aix.system.register.register.close_reg') == 1) {
- throw new ResponseException('网站暂停会员注册,请稍后再次尝试!');
- }else{
- return $this->sendSuccessResponse(['redirect_url'=>url($request->session()->pull('url.intended',
- route('hardware.aio.register')))]);
- }
- }
- $data = $request->all();
- return view('app.hardware.aio.register',['data'=>$data]);
- }
- public function logout()
- {
- $this->authService->logout();
- return redirect(route('hardware.aio.index'));
- }
- public function loginMobile(AuthValidatorRequest $request)
- {
- if (empty($this->smsRepository->getSmsStatus()))
- {
- return $this->sendErrorResponse("error",["info"=>"短信发送失败,网站短信通道未开启"],200);
- }
- $this->memberService->loginMobile($request->mobile, $request->type);
- $this->smsService->sendAuthSms($request->mobile, Smser::TEMPLATE_AUTH_LOGIN);
- return $this->sendSuccessResponse('发送成功!');
- }
- public function loginMobileRe(AuthValidatorRequest $request)
- {
- if (empty($this->smsRepository->getSmsStatus()))
- {
- return $this->sendErrorResponse("error",["info"=>"短信发送失败,网站短信通道未开启"],200);
- }
- $res = $this->registerService->checkUnique($request->type,'mobile',$request->mobile);
- if(!$res){
- throw new ResponseException('该手机号已被其它账号绑定');
- }
- $this->smsService->sendAuthSms($request->mobile, Smser::TEMPLATE_AUTH_LOGIN);
- return $this->sendSuccessResponse('发送成功!');
- }
- public function loginMobileCreate(AuthValidatorRequest $request)
- {
- $mobile_code = $request->mobile_code;
- $mobile = $request->mobile;
- $checkAuthSms = $this->smsService->checkAuthSms($mobile, Smser::TEMPLATE_AUTH_LOGIN, $mobile_code);
- if (!$checkAuthSms) {
- throw new ResponseException('验证码错误!');
- }
- $user = Member::where(['mobile'=>$mobile])->first();
- $this->authService->login($user, 1);
- return $this->sendSuccessResponse(['redirect_url'=>url($request->session()->pull('url.intended',
- route('hardware.aio.index')))]);
- }
- public function registerMobile(AuthValidatorRequest $request)
- {
- $mobile_code = $request->mobile_code;
- $mobile = $request->mobile;
- if(config('aix.system.register.register.close_reg') == 1) {
- throw new ResponseException('网站暂停会员注册,请稍后再次尝试!');
- }
- $checkAuthSms = $this->smsService->checkAuthSms($mobile, Smser::TEMPLATE_AUTH_LOGIN, $mobile_code);
- if (!$checkAuthSms) {
- throw new ResponseException('验证码错误!');
- }
- DB::beginTransaction();//检查数据库事务
- try {
- $member = $this->memberService->registerMobile($mobile);
- if($request->id_card){
- $memberinfo['id_card'] = $request->id_card;
- $memberinfo['uid'] = $member->id;
- $memberinfo['sex'] = $request->sex;
- $memberinfo['realname'] = $request->name;
- $memberinfo['phone'] = $request->mobile;
- $memberinfo['id_card'] = $request->id_card;
- $memberinfo['card_t_cn'] = 306;
- $memberinfo['birthday'] = get_birthday($request->id_card);
- $this->memberInfoRepository->createInfo($memberinfo);
- }
- DB::commit();
- $this->authService->login($member, 1);
- return $this->sendSuccessResponse(['redirect_url'=>url($request->session()->pull('url.intended',
- route('hardware.aio.resume.create')))]);
- }catch (\Exception $e) {
- DB::rollback();
- throw new ResponseException($e->getMessage());
- }
- }
- }
|