inital commit

This commit is contained in:
2026-06-24 18:29:01 +06:00
commit f401802bf7
3918 changed files with 553085 additions and 0 deletions

View File

@@ -0,0 +1,250 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\LoginRequest;
use App\Models\CreditreportProvider;
use App\Models\Permission;
use App\Models\Support;
use App\Models\User;
use App\Models\UserPackage;
use App\Models\VideoSetting;
use App\Utility\ActionLogCreate;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\View;
class AuthController extends Controller
{
private $message;
private $code;
private $data;
public function __construct()
{
$this->middleware('guest')->except([
'userLogout',
'showRegisterForm',
'register',
'authRedirect'
]);
$this->message = 'Fail';
$this->code = config('constant.API_FAILED_CODE');
$this->data=[];
}
public function secretSignup($id){
// if($id == '1235346344647fsdfw534545') {
setSession('isFree', 1);
return redirect(route('register'));
// }
// return back()->withErrors(['message'=>'Invalid URL']);
}
public function authRedirect(){
if(auth()->check()){
$user_type = auth()->user()->user_type;
if($user_type == 0){
return redirect(route('show.manage.clients'));
}elseif ($user_type == 2){
$permissions_route_list = getSession('permissions_route_list');
return redirect(route($permissions_route_list[0]));
}else {
return redirect(route('get.clients'));
}
}
return redirect(route('login'));
}
public function showLoginForm(){
unSetSession('isFree');
return view('auth.login');
}
public function login(LoginRequest $request){
$inputData = $request->only(['email','password']);
$action='USER_LOGIN';
$userObjData = (new User())->getAuthenticateUser($inputData['email'],$inputData['password']);
if(!empty($userObjData)){
Auth::loginUsingId($userObjData->id);
if($userObjData->user_type == 0)
{
setSession('login',1);
$this->userAccessDateVerification($userObjData);
// $this->lastPaymentDateVerification($userObjData);
$days = getDateDifference($userObjData->last_import_date,'day');
if($days >= config('constant.PACKAGE_INTERVAL_DAY')){
setSession('eligible_for_import',1);
$userObjData->is_import = config('constant.IMPORT_REPORT_STATUS.ELIGIBLE');
// $userObjData->wave = ($userObjData->wave +1);
// $userObjData->last_import_date = getCurrentDateTime();
$userObjData->save();
}
if($userObjData->is_first_login == 1){
setSession('is_first_login',1);
setSession('is_first_time_login',true);
}
getUserImagesAndDoc($userObjData->id);
$this->setTrainingVideoLink();
$this->setReportProviderLink();
$inputData['id'] = $userObjData->id;
$inputData['user_type'] = 0;
$this->setSupport($inputData);
return redirect(route('show.manage.clients'));
}else if($userObjData->user_type == 2){
$permissions_route_list = (new Permission())->getRouteNameListByUserId($userObjData->id);
setSession('permissions_route_list',$permissions_route_list);
$inputData['id'] = $userObjData->id;
$inputData['user_type'] = 1;
$this->setSupport($inputData);
return redirect(route($permissions_route_list[0]));
}
else{
$inputData['id'] = $userObjData->id;
$inputData['user_type'] = 1;
$this->setSupport($inputData);
return redirect(route('get.clients'));
}
}
return back()->withErrors(['message'=>'Invalid email or password']);
}
public function showRegisterForm(){
return view('layouts.register');
}
public function register(Request $request){
if($request->ajax()){
$data = [];
try {
DB::beginTransaction();
$data = $this->ajaxRequestHandle($request->all());
DB::commit();
}catch (\Exception $ex){
DB::rollback();
}
return response()->json($data,200);
}
}
public function userLogout(){
auth()->logout();
return redirect(route('login'));
}
private function ajaxRequestHandle($request){
$user = app(\App\Models\User::class);
$response['status'] = false;
if($request['action'] == "CREATE_ACCOUNT"){
$inputData['first_name'] = $request['FirstName'];
$inputData['last_name'] = $request['LastName'];
$inputData['email'] = $request['Email'];
$inputData['password'] = $request['Password'];
if($user->getUserByEmail($inputData['email'])){
$response['status'] = true;
$response['message'] = "Email ".$inputData['email']." is already taken";
}else {
if ($saved = $user->addUser($inputData)) {
$response['status'] = true;
session()->put('user_id',$saved->id);
session()->put('step',2);
$response['html'] = view('register.partials.add_profile')->render();
}
}
}else if($request['action'] == "ADD_PROFILE"){
$inputData['street_no'] = $request['Street_no'];
$inputData['street_name'] = $request['Street_name'];
$inputData['city'] = $request['City'];
$inputData['state'] = $request['State'];
$inputData['ssn'] = $request['ssn'];
$inputData['zip_code'] = $request['Zip'];
$inputData['phone'] = $request['PhoneNumber'];
if($user->userupdate($inputData,session()->get('user_id'))){
$response['status'] = true;
session()->put('step',3);
$response['html'] = view('register.partials.credit_report')->render();
}
}else if($request['action'] == "CREDIT_REPORT"){
$comapanyTypeArray = [
'1'=>3,
'2'=>3,
'3'=>1
];
$inputData['package_id'] = $request['package_id'];
$inputData['user_id'] = session()->get('user_id');
$userPackage = new UserPackage();
if($userPackage->setUserPackage($inputData)) {
$updateData['credit_report_company_type'] = $comapanyTypeArray[$inputData['package_id']];
$user->userupdate($updateData,$inputData['user_id']);
$response['status'] = true;
$response['redirect_url'] = route('login');
}
}
return $response;
}
private function setTrainingVideoLink(){
$key = 'training_video_link';
unsetCache($key);
if(empty(getCache($key))){
$training_video = (new VideoSetting())->getVideoList();
if(!empty($training_video)) {
setCache($key, $training_video);
}
}
}
private function setReportProviderLink(){
$key = 'credit_report_provider_link';
unsetCache($key);
if(empty(getCache($key))){
$report_provider = (new CreditreportProvider())->getReportProviders();
if(!empty($report_provider)) {
setCache($key, $report_provider);
}
}
}
private function lastPaymentDateVerification($userObjData)
{
$days = getDateDifference($userObjData->last_payment_date,'day');
if($days > config('constant.PAYMENT_INTERVAL_DAY')){
Auth::user()->update([
'subscription_status'=>config('constant.SUBSCRIPTION_STATUS.UNSUBSCRIBED'),
]);
}
}
private function userAccessDateVerification($userObjData)
{
if( getCurrentDateTime() > $userObjData->user_access_end_date){
Auth::user()->update([
'subscription_status'=>config('constant.SUBSCRIPTION_STATUS.UNSUBSCRIBED'),
]);
}
}
private function setSupport($inputData)
{
// $support_data = (new Support())->getSupport($inputData);
// setSession('new_ticket',$support_data->count());
$support_data = (new Support())->getNotifcation($inputData['id'],$inputData['user_type'])->toArray();
setSession('new_ticket',$support_data);
}
}