0% found this document useful (0 votes)
0 views

UserController.php

Uploaded by

Kamlesh kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

UserController.php

Uploaded by

Kamlesh kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

<?

php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use App\UserData;
use App\UserBankDetail;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redirect;
use Validator;
use Alert;
use App\Bonus;
use App\BonusHistory;
use App\TransactionHistory;

class UserController extends Controller


{
public $successStatus = 200;

public function login(Request $request){


echo $request->referral_code;
/* Log::info($request);
if(Auth::attempt(['mobile' => request('mobile'), 'password' =>
request('password')])){
return view('home');
}
else{
return Redirect::back ();
}*/
}

public function index(Request $request){

$referral_code = $request->query('referral');
return view('auth.register', compact('referral_code'));

}
public function registerStep1(Request $request)
{
//dd($request);
$validator = Validator::make($request->all(), [
'name' => 'required',
'mobile' => 'required|unique:users',
'reffered_by' => '',
]);

if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}

$otp = rand(100000, 999999);

$key =
"3lhYftCFLD8mrPd5X0jnTWo2iZJe9gAMKSOcN7zpIxUVvuQwksGldcfYJDXNpQk6LmwqBPW3AbtxKM1g";
$route = "dlt";
$sender_id = "VTPLAY";
$message = "173069";
$language = "english";
$flash = "0";
$numbers = $request->mobile;

$message = urlencode($message);

//dd($message);
$data = "authorization=".$key."&route=".$route."&sender_id=".
$sender_id."&message=".$message."&variables_values=".$otp."&language=".
$language."&flash=".$flash."&numbers=".$numbers;
//echo 'https://www.fast2sms.com/dev/bulkV2?'.$data;exit;
$ch = curl_init('https://www.fast2sms.com/dev/bulkV2?'.$data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
//dd($response);
curl_close($ch);
session([
'temp_user' => [
'name' => $request->name,
'mobile' => $request->mobile,
'reffered_by' => $request->reffered_by,
'otp' => $otp,
'otp_expires_at' => now()->addMinutes(5),
]
]);

return redirect()->route('register.step2');
}

public function showStep2Form()


{
return view('auth.verify_otp');
}
public function showStep3Form()
{
return view('auth.step_three');
}

public function registerStep2(Request $request)


{
$validator = Validator::make($request->all(), [
'otp' => 'required|digits:6',
]);

//dd(session('temp_user'));
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}

$sessionData = session('temp_user');
//dd( $sessionData);
//dd($sessionData);
if (!$sessionData) {
return redirect()->back()->withErrors(['otp' => 'Session expired'])-
>withInput();
}

if ($request->otp != $sessionData['otp'] || now()-


>greaterThan($sessionData['otp_expires_at'])) {
return redirect()->back()->withErrors(['otp' => 'Invalid or expired OTP'])-
>withInput();
}

//session()->forget('temp_user');

return redirect()->route('register.step3');
}

public function registerStep3(Request $request)


{
$validator = Validator::make($request->all(), [
'username' => 'required|string|max:255|unique:users',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
]);

if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}

$sessionData = session('temp_user');
//dd( $sessionData['reffered_by']);
if (!$sessionData) {
return redirect()->back()->withErrors(['error' => 'Session expired'])-
>withInput();
}

$uservplayid = substr(str_shuffle("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0,
5) . rand(111, 999);
$userreferralcode = substr(str_shuffle("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"),
0, 5) . rand(111, 999);
//dd($uservplayid);
$user = User::create([
'name' => $sessionData['name'],
'mobile' => $sessionData['mobile'],
'reffered_by' => $sessionData['reffered_by'],
'username' => $request->username,
'email' => $request->email,
'password' => bcrypt($request->password),
'user_type' => 2,
'vplay_id' => $request->username,
'referral_code' => $userreferralcode,
]);

$signup_bonus = Bonus::first();
if ($signup_bonus) {
$user->wallet = $signup_bonus->amount;
$user->save();

$bonus = new BonusHistory();


$bonus->user_id = $user->id;
$bonus->amount = $signup_bonus->amount;
$bonus->bonus_type = 'SignUp';
$bonus->save();
$order_id = 'order_' . rand(1111111111, 9999999999);
$trans_hist = new TransactionHistory();
$trans_hist->user_id = $user->id;
$trans_hist->payment_id = 0;
$trans_hist->order_id = $order_id;
$trans_hist->day = date('d');
$trans_hist->month = date('M');
$trans_hist->year = date('Y');
$trans_hist->paying_time = date('h:i A');
$trans_hist->amount = $signup_bonus->amount;
$trans_hist->add_or_withdraw = 'add';
$trans_hist->closing_balance = $signup_bonus->amount;
$trans_hist->remark = 'Signup Bonus';
$trans_hist->save();
}

$user_data = new UserData();


$user_data->user_id = $user->id;
$user_data-> vplay_id = $uservplayid;
$user_data->save();

$user_bank = new UserBankDetail();


$user_bank->user_id = $user->id;
$user_bank->save();

Auth::login($user);
session()->forget(['temp_user']);

return redirect('/user/dashboard');
}

public function loginWithOtp(Request $request ){


$loginField = $request->input('login_field');
$password = $request->input('password');

// Check if login field is email or mobile


$fieldType = filter_var($loginField, FILTER_VALIDATE_EMAIL) ? 'email' :
'mobile';

// Check if user is blocked


$user = User::where($fieldType, $loginField)->where('is_blocked', 1)->first();
if ($user) {
Alert::error('', 'Your Account is blocked');
return redirect()->back();
}

// Attempt to log in the user


if (Auth::attempt([$fieldType => $loginField, 'password' => $password])) {
$user = Auth::user();
if ($user->user_type == 1) {
return redirect('/admin/dashboard');
} elseif ($user->user_type == 2) {
return redirect('/user/dashboard');
} else {
return redirect('/employee/dashboard');
}
} else {
Alert::error('', 'Invalid Credentials');
return redirect()->back();
}
}

public function loginWithOtpForm(){


return view('auth/OtpLogin');
}
public function loginWithOtpForm1(){
return redirect("/referral");
}

public function rules(){


return view('user.rules');
}

public function info_conditions(){


return view('user.info_conditions');
}
}

You might also like