Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
gambling
/
app
/
Http
/
Controllers
/
Admin
:
AdminController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Controllers\Admin; use App\Constants\Status; use App\Http\Controllers\Controller; use App\Lib\CurlRequest; use App\Models\AdminNotification; use App\Models\Game; use App\Models\GameLog; use App\Models\User; use App\Models\UserLogin; use App\Rules\FileTypeValidate; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; class AdminController extends Controller { public function dashboard() { $pageTitle = 'Dashboard'; // User Info $widget['total_users'] = User::count(); $widget['verified_users'] = User::active()->count(); $widget['email_unverified_users'] = User::emailUnverified()->count(); $widget['mobile_unverified_users'] = User::mobileUnverified()->count(); $widget['total_games'] = Game::count(); $widget['total_played'] = GameLog::sum('invest'); $widget['total_invest_amount'] = GameLog::sum('invest'); $widget['total_win_amount'] = GameLog::win()->sum('win_amo'); $widget['total_loss_amount'] = GameLog::loss()->sum('invest'); $widget['total_profit'] = $widget['total_invest_amount'] - $widget['total_win_amount']; // user Browsing, Country, Operating Log $userLoginData = UserLogin::where('created_at', '>=', Carbon::now()->subDays(30))->get(['browser', 'os', 'country']); $chart['user_browser_counter'] = $userLoginData->groupBy('browser')->map(function ($item, $key) { return collect($item)->count(); }); $chart['user_os_counter'] = $userLoginData->groupBy('os')->map(function ($item, $key) { return collect($item)->count(); }); $chart['user_country_counter'] = $userLoginData->groupBy('country')->map(function ($item, $key) { return collect($item)->count(); })->sort()->reverse()->take(5); return view('admin.dashboard', compact('pageTitle', 'widget', 'chart')); } public function profile() { $pageTitle = 'Profile'; $admin = auth('admin')->user(); return view('admin.profile', compact('pageTitle', 'admin')); } public function profileUpdate(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required|email', 'image' => ['nullable', 'image', new FileTypeValidate(['jpg', 'jpeg', 'png'])], ]); $user = auth('admin')->user(); if ($request->hasFile('image')) { try { $old = $user->image; $user->image = fileUploader($request->image, getFilePath('adminProfile'), getFileSize('adminProfile'), $old); } catch (\Exception $exp) { $notify[] = ['error', 'Couldn\'t upload your image']; return back()->withNotify($notify); } } $user->name = $request->name; $user->email = $request->email; $user->save(); $notify[] = ['success', 'Profile updated successfully']; return to_route('admin.profile')->withNotify($notify); } public function password() { $pageTitle = 'Password Setting'; $admin = auth('admin')->user(); return view('admin.password', compact('pageTitle', 'admin')); } public function passwordUpdate(Request $request) { $request->validate([ 'old_password' => 'required', 'password' => 'required|min:5|confirmed', ]); $user = auth('admin')->user(); if (!Hash::check($request->old_password, $user->password)) { $notify[] = ['error', 'Password doesn\'t match!!']; return back()->withNotify($notify); } $user->password = Hash::make($request->password); $user->save(); $notify[] = ['success', 'Password changed successfully.']; return to_route('admin.password')->withNotify($notify); } public function notifications() { $notifications = AdminNotification::orderBy('id', 'desc')->with('user')->paginate(getPaginate()); $hasUnread = AdminNotification::where('is_read', Status::NO)->exists(); $hasNotification = AdminNotification::exists(); $pageTitle = 'Notifications'; return view('admin.notifications', compact('pageTitle', 'notifications', 'hasUnread', 'hasNotification')); } public function notificationRead($id) { $notification = AdminNotification::findOrFail($id); $notification->is_read = Status::YES; $notification->save(); $url = $notification->click_url; if ($url == '#') { $url = url()->previous(); } return redirect($url); } public function requestReport() { return to_route('admin.dashboard')->withErrors('Report feature is not available.'); } public function reportSubmit(Request $request) { return to_route('admin.dashboard')->withErrors('Report feature is not available.'); } public function readAllNotification() { AdminNotification::where('is_read', Status::NO)->update([ 'is_read' => Status::YES, ]); $notify[] = ['success', 'Notifications read successfully']; return back()->withNotify($notify); } public function deleteAllNotification() { AdminNotification::truncate(); $notify[] = ['success', 'Notifications deleted successfully']; return back()->withNotify($notify); } public function deleteSingleNotification($id) { AdminNotification::where('id', $id)->delete(); $notify[] = ['success', 'Notification deleted successfully']; return back()->withNotify($notify); } public function downloadAttachment($fileHash) { $filePath = decrypt($fileHash); $extension = pathinfo($filePath, PATHINFO_EXTENSION); $title = slug(gs('site_name')) . '- attachments.' . $extension; try { $mimetype = mime_content_type($filePath); } catch (\Exception $e) { $notify[] = ['error', 'File does not exists']; return back()->withNotify($notify); } header('Content-Disposition: attachment; filename="' . $title); header("Content-Type: " . $mimetype); return readfile($filePath); } }