diff --git a/app/Http/Controllers/Admin/ActivityLogController.php b/app/Http/Controllers/Admin/ActivityLogController.php new file mode 100644 index 0000000..4e523b3 --- /dev/null +++ b/app/Http/Controllers/Admin/ActivityLogController.php @@ -0,0 +1,20 @@ +latest() + ->paginate(4); + + return view('admin.activityLog.index',compact('logs')); + } +} diff --git a/app/Http/Controllers/Admin/Auth/DashboardController.php b/app/Http/Controllers/Admin/Auth/DashboardController.php index 118797f..2ba1946 100644 --- a/app/Http/Controllers/Admin/Auth/DashboardController.php +++ b/app/Http/Controllers/Admin/Auth/DashboardController.php @@ -20,8 +20,16 @@ class DashboardController extends Controller $flightsCount = Flight::count(); + $tourViews= Tour::query() + ->selectRaw('DATE(create_at) as date,SUM(views) as total') + ->where('created_at','>=',now()->subDays(9)) + ->qroupBy('date') + ->orderBy('date') + ->get(); + + return view('admin.dashboard',compact('adminsCount', - 'usersCount','toursCount','flightsCount' + 'usersCount','toursCount','flightsCount','tourViews' )); } } diff --git a/app/Http/Controllers/Admin/FlightController.php b/app/Http/Controllers/Admin/FlightController.php index 4888114..50e6384 100644 --- a/app/Http/Controllers/Admin/FlightController.php +++ b/app/Http/Controllers/Admin/FlightController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\FlightStoreRequest; +use App\Models\ActivityLog; use App\Models\Flight; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -48,8 +49,15 @@ class FlightController extends Controller $data['created_by'] = auth('admin')->id(); - Flight::create($data); + $flight = Flight::create($data); + ActivityLog::create([ + 'admin_id' => auth('admin')->id(), + 'action' => 'create', + 'model' => 'Flight', + 'model_id' => $flight->id, + 'description' => 'ثبت پرواز جدید', + ]); DB::commit(); @@ -107,6 +115,13 @@ class FlightController extends Controller $flight->update($data); + ActivityLog::create([ + 'admin_id' => auth('admin')->id(), + 'action' => 'update', + 'model' => 'Flight', + 'model_id' => $flight->id, + 'description' => 'ویرایش اطلاعات پرواز', + ]); DB::commit(); @@ -136,6 +151,13 @@ class FlightController extends Controller } + ActivityLog::create([ + 'admin_id' => auth('admin')->id(), + 'action' => 'delete', + 'model' => 'Flight', + 'model_id' => $flight->id, + 'description' => 'حذف پرواز', + ]); $flight->delete(); diff --git a/app/Http/Controllers/Admin/TourController.php b/app/Http/Controllers/Admin/TourController.php index b5e6d70..a6dbbea 100644 --- a/app/Http/Controllers/Admin/TourController.php +++ b/app/Http/Controllers/Admin/TourController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\TourStoreRequest; +use App\Models\ActivityLog; use App\Models\Tour; use App\Models\TravelType; use Illuminate\Http\Request; @@ -50,7 +51,15 @@ class TourController extends Controller $data['created_by'] = auth('admin')->id(); - Tour::create($data); + $tour = Tour::create($data); + + ActivityLog::create([ + 'admin_id' => auth('admin')->id(), + 'action' => 'create', + 'model' => 'Tour', + 'model_id' => $tour->id, + 'description' => 'ثبت تور جدید', + ]); DB::commit(); @@ -109,6 +118,14 @@ class TourController extends Controller $tour->update($data); + ActivityLog::create([ + 'admin_id' => auth('admin')->id(), + 'action' => 'create', + 'model' => 'Tour', + 'model_id' => $tour->id, + 'description' => 'ویرایش تور', + ]); + DB::commit(); @@ -138,6 +155,14 @@ class TourController extends Controller } + ActivityLog::create([ + 'admin_id' => auth('admin')->id(), + 'action' => 'create', + 'model' => 'Tour', + 'model_id' => $tour->id, + 'description' => 'حذف تور', + ]); + $tour->delete(); diff --git a/app/Models/ActivityLog.php b/app/Models/ActivityLog.php new file mode 100644 index 0000000..9d693fb --- /dev/null +++ b/app/Models/ActivityLog.php @@ -0,0 +1,49 @@ + 'int', + 'model_id' => 'int' + ]; + + protected $fillable = [ + 'admin_id', + 'action', + 'model', + 'model_id', + 'description' + ]; + + public function admin() + { + return $this->belongsTo(Admin::class); + } + +} diff --git a/app/Models/Admin.php b/app/Models/Admin.php index 78c4aa6..96862ee 100644 --- a/app/Models/Admin.php +++ b/app/Models/Admin.php @@ -103,4 +103,8 @@ class Admin extends User }) ->exists(); } + public function activityLogs() + { + return $this->hasMany(ActivityLog::class); + } } diff --git a/resources/views/admin/activityLog/index.blade.php b/resources/views/admin/activityLog/index.blade.php new file mode 100644 index 0000000..56d66a8 --- /dev/null +++ b/resources/views/admin/activityLog/index.blade.php @@ -0,0 +1,182 @@ +@extends('admin.layouts.app') + +@section('breadcrumb') + + گزارش فعالیتها + +@endsection + +@section('content') + +
| + شناسه + | + ++ کاربر + | + ++ عملیات + | + ++ بخش + | + ++ شناسه مورد + | + ++ توضیحات + | + ++ تاریخ + | + +
|---|---|---|---|---|---|---|
| + {{ $loop->iteration }} + | + ++ {{ $log->admin->name ?? '-' }} + | + ++ + @switch($log->action) + + @case('create') + + ایجاد + + @break + + + @case('update') + + ویرایش + + @break + + + @case('delete') + + حذف + + @break + + + @default + {{ $log->action }} + + @endswitch + + | + ++ + @if($log->model == 'Flight') + + پرواز + + @elseif($log->model == 'Tour') + + تور + + @else + + {{ $log->model }} + + @endif + + | + ++ {{ $log->model_id }} + | + + + ++ {{ $log->description }} + | + + + ++ {{ $log->created_at->toJalali()->format('Y/m/d H:i') }} + | + +
| + + موردی یافت نشد + + | + +||||||