Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/app/Http/Controllers/Shop/ |
<?php
namespace App\Http\Controllers\Shop;
use App\Models\Settings;
use App\Models\Option;
use App\Models\User;
use App\Rules\MatchOldPassword;
use Carbon\Carbon;
use Hash;
use Illuminate\Http\Request;
use Spatie\Activitylog\Models\Activity;
class AdminController extends Controller
{
public function index()
{
$data = User::select(\DB::raw('COUNT(*) as count'), \DB::raw('DAYNAME(created_at) as day_name'), \DB::raw('DAY(created_at) as day'))
->where('created_at', '>', Carbon::today()->subDay(6))
->groupBy('day_name', 'day')
->orderBy('day')
->get();
$array[] = ['Name', 'Number'];
foreach ($data as $key => $value) {
$array[++$key] = [$value->day_name, $value->count];
}
// return $data;
return view('backend.index')->with('users', json_encode($array));
}
public function profile()
{
$profile = Auth()->user();
return view('backend.users.profile')->with('profile', $profile);
}
public function profileUpdate(Request $request, $id)
{
$user = User::findOrFail($id);
$data = $request->only([
'first_name',
'last_name',
'photo',
]);
$status = $user->fill($data)->save();
if ($status) {
request()->session()->flash('success', 'Successfully updated your profile');
} else {
request()->session()->flash('error', 'Please try again!');
}
return redirect()->back();
}
public function settings()
{
$setting = (object) Option::getOptions('settings');
return view('backend.setting')->with('data', $setting);
}
public function settingsUpdate(Request $request)
{
$this->validate($request, [
'short_desc' => 'required|string',
'description' => 'required|string',
'photo' => 'required',
'logo' => 'required',
'address' => 'required|string',
'email' => 'required|email',
'notification_email' => 'required|email',
'phone' => 'required|string',
'account_no' => 'required|string',
'bank' => 'required|string',
'maxPrice' => 'required|array',
'installmentCount' => 'required|array'
]);
$data = $request->only(['short_desc', 'description', 'photo', 'logo', 'address', 'email', 'notification_email', 'phone', 'account_no', 'bank']);
foreach ($request->input('maxPrice') as $i => $k) {
if ($k) {
$data['max_price_' . $i] = $k;
$data['installment_' . $i] = $request->input('installmentCount.' . $i);
}
}
if (Option::setOptions('settings', $data)) {
request()->session()->flash('success', 'Setting successfully updated');
} else {
request()->session()->flash('error', 'Please try again');
}
return redirect()->route('settings');
}
public function changePassword()
{
return view('backend.layouts.changePassword');
}
public function changPasswordStore(Request $request)
{
$request->validate([
'current_password' => ['required', new MatchOldPassword()],
'new_password' => ['required'],
'new_confirm_password' => ['same:new_password'],
]);
User::find(auth()->id())->update(['password' => Hash::make($request->new_password)]);
return redirect()->route('admin')->with('success', 'Password successfully changed');
}
// Pie chart
public function userPieChart(Request $request)
{
$data = User::select(\DB::raw('COUNT(*) as count'), \DB::raw('DAYNAME(created_at) as day_name'), \DB::raw('DAY(created_at) as day'))
->where('created_at', '>', Carbon::today()->subDay(6))
->groupBy('day_name', 'day')
->orderBy('day')
->get();
$array[] = ['Name', 'Number'];
foreach ($data as $key => $value) {
$array[++$key] = [$value->day_name, $value->count];
}
// return $data;
return view('backend.index')->with('course', json_encode($array));
}
// public function activity(){
// return Activity::all();
// $activity= Activity::all();
// return view('backend.layouts.activity')->with('activities',$activity);
// }
public function fileManager()
{
return view('backend.layouts.file-manager');
}
}