| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- <?php
- namespace App\Http\Controllers\Auth\Front;
- use App\Http\Controllers\Controller;
- use App\Http\Controllers\Traits\ApiResponseTrait;
- use App\Http\Requests\Front\MemberRegisterRequest;
- use App\Models\Member;
- use App\Models\MemberNumber;
- use App\Models\MemberTeam;
- use App\Models\MemberVerify;
- use App\Servers\Faceid;
- use App\Servers\MachineServer;
- use App\Servers\MemberServer;
- use App\Servers\RegisterServer;
- use App\Servers\SmsServer;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- class RegisterController extends Controller
- {
- use ApiResponseTrait;
- // 注册 post
- public function register(MemberRegisterRequest $request)
- {
- try {
- $send_type = $request->input('send_type', '');
- if(empty($send_type)){
- return response()->json([
- 'msg' => '滑块验证失败,请重新验证',
- 'data' => [],
- 'code' => 0,
- ]);
- }
- if (strtolower(env('APP_ENV')) == 'down') {
- return $this->apiResponseError(null, '系统维护中...');
- }
- $is_behavior = \App\Servers\Yp::validateYP();
- if (empty($is_behavior) ) {
- return response()->json([
- 'msg' => '滑块验证失败,请重新验证',
- 'data' => [],
- 'code' => 0,
- ]);
- }
- $memberVerify=RegisterServer::register();
- if(empty($memberVerify)){
- return response()->json([
- 'msg' => '请完成人脸识别认证',
- 'data' => $memberVerify,
- 'code' => 0,
- ]);
- }
- $refereeCode = $request->input('referee_code', null); // 邀请码
- $refereeID = MemberNumber::where('referee', $refereeCode)->first();
- if (empty($refereeID)) {
- return $this->apiResponseError(null, '邀请码错误');
- }
- if (is_numeric($refereeID->{'member_id'}) && $refereeID->{'member_id'} > 0) {
- $refereeMember = Member::where('id', $refereeID->{'member_id'})->first();
- } else {
- $refereeMember = null;
- }
- if (empty($refereeMember)) {
- return $this->apiResponseError(null, '邀请码错误');
- }
- $sms = $request->input('sms', '');
- $phone = $request->input('phone', '');
- $type = $request->input('type', '');
- // 短信验证码是否通过
- $result = (new SmsServer)->checkSms($sms, $phone, $type);
- if ($result['errcode'] === false) {
- return $this->apiResponseError(null, $result['errmsg']);
- }
- DB::beginTransaction(); // 开启事务
- $registerMember = MemberServer::register($request, $refereeMember); // 注册会员
- DB::commit(); // 提交事务
- // 会员团队人数统计
- $parents = explode(",", $registerMember->{'referee_path'});
- foreach ($parents as $key => $parent) {
- $parentMember = Member::where('id', $parent)->first();
- if (empty($parentMember)) {
- continue;
- }
- // 团队人数统计
- $refereeMemberTeam = MemberTeam::where('member_id', $parentMember->{'id'})->first();
- if (!empty($refereeMemberTeam)) {
- // 直推团队人数
- MemberTeam::where('id', $refereeMemberTeam->{'id'})->increment('team_count', 1);
- if ($key <= 0) {
- // 团队直推人数
- MemberTeam::where('id', $refereeMemberTeam->{'id'})->increment('team_recommend_count', 1);
- }
- }
- }
- // 更新会员ID ::=> 实名认证表中
- if (!empty($registerMember)) {
- MemberVerify::where('id',$memberVerify->{'id'})
- ->where('member_id', '<=', 0)
- ->update([
- 'member_id' => $registerMember->{'id'}, // 更新会员ID
- ]);
- RegisterServer::attestApi($registerMember,$memberVerify->{'cid'},$memberVerify->{'real_name'});
- }
- if ($request->input('pc', null) == 'pc') {
- return $this->apiResponseSuccess(
- [
- 'redirect' => route('front.m.down'),
- ],
- '注册成功'
- );
- }
- // 注册成功重新登录
- return $this->apiResponseSuccess(
- [
- 'access_token' => "",
- 'token_type' => 'bearer',
- 'expires_in' => 1,
- 'm_id' => 0,
- ],
- '注册成功'
- );
- // $credentials = request(['phone', 'password']);
- // $token = auth('api')->attempt($credentials);
- // return response()->json([
- // 'msg' => '注册成功',
- // 'data' => [
- // 'access_token' => $token,
- // 'token_type' => 'bearer',
- // 'expires_in' => auth('api')->factory()->getTTL() * 60,
- // 'm_id' => auth('api')->user()->{'id'},
- // ],
- // 'code' => 1,
- // ]);
- } catch (\Exception $e) {
- DB::rollBack(); // 回滚
- return response()->json([
- 'msg' => $e->getMessage(),
- 'data' => [],
- 'code' => 0,
- ]);
- }
- }
- // pc 注册
- public function index()
- {
- $code = request()->input('code', 000000);
- return view('admins.auth.register', compact('code'));
- }
- /**
- * 获取token
- */
- public function getBizToken()
- {
- $idcard_number = request()->input('idcard_number', '');
- $idcard_name = request()->input('idcard_name', '');
- // return response()->json([
- // 'msg' => '信息校验中,请稍后再试...',
- // 'data' => [],
- // 'code' => 0,
- // ]);
- if (empty($idcard_number)) {
- return response()->json([
- 'msg' => '请输入身份证号码',
- 'data' => [],
- 'code' => 0,
- ]);
- }
- if (empty($idcard_name)) {
- return response()->json([
- 'msg' => '请输姓名',
- 'data' => [],
- 'code' => 0,
- ]);
- }
- $member_verify=MemberVerify::where('cid', $idcard_number)->where('status','1')->select(['id', 'status'])->first();
- if(!empty($member_verify)){
- session([
- 'verify_info' => [
- 'verify_id' => $member_verify->id
- ]
- ]);
- return response()->json([
- 'msg' => '认证成功',
- 'data' => ['biz_token' => '','verify_id'=>$member_verify->id],
- 'code' => 1,
- ]);
- }
- $biz_token = Faceid::getBizToken($idcard_name, $idcard_number);
- if (empty($biz_token)) {
- return response()->json([
- 'msg' => '姓名与身份证信息不符',
- 'data' => [],
- 'code' => 0,
- ]);
- } else {
- session([
- 'biz_token_info' => [
- 'biz_token' => $biz_token,
- 'idcard_number' => $idcard_number,
- 'idcard_name' => $idcard_name,
- ]
- ]);
- return response()->json([
- 'msg' => '获取token成功',
- 'data' => ['biz_token' => $biz_token,'verify_id'=>'0'],
- 'code' => 1,
- ]);
- }
- //验证当前身份证是否已经实名认证
- // $verify_member = MemberNumber::where('cid', $idcard_number)->select(['id', 'status'])->first();
- // if (empty($verify_member) || $verify_member->status != '2') {
- //
- //
- // } else {
- // return response()->json([
- // 'msg' => '当前用户已实名认证',
- // 'data' => [],
- // 'code' => 0,
- // ]);
- // }
- }
- function verifyIdentity()
- {
- $biz_token_info = session('biz_token_info', []);
- // $biz_token_info['biz_token']='1572248662,6dfadc72-bfb2-43df-8540-0c0e0f6519e5';
- if (empty($biz_token_info['biz_token'])) {
- return response()->json([
- 'msg' => '请完成人脸识别认证',
- 'data' => [],
- 'code' => 0,
- ]);
- }
- $send_biz_token = request()->input('biz_token', '');
- if ($biz_token_info['biz_token'] != $send_biz_token) {
- return response()->json([
- 'msg' => '请上传正确的token信息',
- 'data' => [
- 'old'=>$biz_token_info['biz_token'],
- 'new'=>$send_biz_token
- ],
- 'code' => 0,
- ]);
- }
- $biz_data = request()->input('biz_data', '');
- // $biz_data=file_get_contents('../aa.txt');
- // dd($biz_data);
- // $biz_data=file_get_contents('../aa.txt');
- // if (empty($biz_data)) {
- // return response()->json([
- // 'msg' => '请上传人脸识别信息',
- // 'data' => [],
- // 'code' => 0,
- // ]);
- // }
- $is_verify = Faceid::verifyIdentity($send_biz_token, $biz_data);
- if(empty($is_verify)){
- return response()->json([
- 'msg' => '人脸识别失败',
- 'data' => [],
- 'code' => 0,
- ]);
- }else{
- $verify_info=MemberVerify::create([
- 'cid'=>$biz_token_info['idcard_number'],
- 'real_name'=>$biz_token_info['idcard_name'],
- 'biz_token'=>$biz_token_info['biz_token'],
- 'status'=>1,
- 'member_id'=>0,
- ]);
- if(empty($verify_info)){
- return response()->json([
- 'msg' => '信息存储失败',
- 'data' => [],
- 'code' => 0,
- ]);
- }
- session([
- 'verify_info' => [
- 'verify_id' => $verify_info->id
- ]
- ]);
- return response()->json([
- 'msg' => '人脸识别成功',
- 'data' => ['verify_id'=>$verify_info->id],
- 'code' => 1,
- ]);
- }
- }
- }
|