diff --git a/app/Http/Controllers/Admin/Auth/DashboardController.php b/app/Http/Controllers/Admin/Auth/DashboardController.php
index 270b6db..0b5abfa 100644
--- a/app/Http/Controllers/Admin/Auth/DashboardController.php
+++ b/app/Http/Controllers/Admin/Auth/DashboardController.php
@@ -8,6 +8,7 @@ use App\Models\Admin;
use App\Models\Flight;
use App\Models\Tour;
use App\Models\User;
+use Illuminate\Support\Facades\Cache;
class DashboardController extends Controller
{
@@ -21,28 +22,37 @@ class DashboardController extends Controller
$flightsCount = Flight::count();
- $tourViews= Tour::query()
- ->selectRaw('DATE(created_at) as date,SUM(views) as total')
- ->where('created_at','>=',now()->subDays(9))
- ->groupBy('date')
- ->orderBy('date')
- ->get();
+ $tourViews = $this->getViewsForLast10Days(Tour::class, 'tour_views');
- $flightViews=Flight::query()
- ->selectRaw('DATE(created_at) as date,SUM(views) as total')
- ->where('created_at','>=',now()->subDays(9))
- ->groupBy('date')
- ->orderBy('date')
- ->get();
+ $flightViews = $this->getViewsForLast10Days(Flight::class, 'flight_views');
$logs = ActivityLog::with('admin')
->latest()
->take(5)
->get();
- return view('admin.dashboard',compact('adminsCount',
- 'usersCount','toursCount','flightsCount','tourViews',
- 'flightViews','logs'
+ return view('admin.dashboard', compact(
+ 'adminsCount',
+ 'usersCount', 'toursCount', 'flightsCount', 'tourViews',
+ 'flightViews', 'logs'
));
}
+
+ private function getViewsForLast10Days(string $model, string $cachePrefix)
+ {
+ $ids = $model::pluck('id');
+
+ return collect(range(9, 0))->map(function ($i) use ($ids, $cachePrefix) {
+ $date = now()->subDays($i)->format('Y-m-d');
+
+ $total = $ids->sum(function ($id) use ($cachePrefix, $date) {
+ return Cache::get("{$cachePrefix}:{$id}:{$date}", 0);
+ });
+
+ return [
+ 'date' => verta($date)->format('m/d'),
+ 'total' => (int) $total,
+ ];
+ })->values();
+ }
}
diff --git a/app/Http/Controllers/Admin/TourController.php b/app/Http/Controllers/Admin/TourController.php
index 6a45669..530e011 100644
--- a/app/Http/Controllers/Admin/TourController.php
+++ b/app/Http/Controllers/Admin/TourController.php
@@ -87,9 +87,6 @@ class TourController extends Controller
}
}
-
-
-
public function edit(Tour $tour)
{
return view('admin.tours.edit',compact('tour'));
diff --git a/app/Http/Controllers/FlightController.php b/app/Http/Controllers/FlightController.php
index bd6a42d..bf53bca 100644
--- a/app/Http/Controllers/FlightController.php
+++ b/app/Http/Controllers/FlightController.php
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Models\Flight;
use App\Models\Tour;
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Cache;
class FlightController extends Controller
{
@@ -40,6 +41,9 @@ class FlightController extends Controller
{
$flight->increment('views');
+ $cacheKey = 'flight_views:' . $flight->id . ':' . now()->format('Y-m-d');
+ Cache::put($cacheKey, Cache::get($cacheKey, 0) + 1, now()->addDays(15));
+
$comments = $flight->comments()
->latest()
->get();
diff --git a/app/Http/Controllers/TourController.php b/app/Http/Controllers/TourController.php
index 4bafb9f..0ff27b8 100644
--- a/app/Http/Controllers/TourController.php
+++ b/app/Http/Controllers/TourController.php
@@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\Tour;
+use Illuminate\Support\Facades\Cache;
class TourController extends Controller
{
@@ -24,6 +25,10 @@ class TourController extends Controller
{
$tour->load('travelType');
$tour->increment('views');
+
+ $cacheKey = 'tour_views:' . $tour->id . ':' . now()->format('Y-m-d');
+ Cache::put($cacheKey, Cache::get($cacheKey, 0) + 1, now()->addDays(15));
+
$comments = $tour->comments()
->latest()
->get();
diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php
index 938d3ae..e2c3797 100644
--- a/resources/views/admin/dashboard.blade.php
+++ b/resources/views/admin/dashboard.blade.php
@@ -174,46 +174,98 @@
-
-
+
-@endsection
+
+
+ @endsection
diff --git a/routes/admin.php b/routes/admin.php
index db673a6..5b1e3d9 100644
--- a/routes/admin.php
+++ b/routes/admin.php
@@ -26,8 +26,7 @@ Route::prefix('admin')->name('admin.')->group(function (){
Route::get('/','login')->name('index');
Route::post('/','loginPost')->name('post');
});
- Route::post('logout','logout')->middleware('auth:admin')
- ->name('logout');
+ Route::post('logout','logout')->middleware('auth:admin')->name('logout');
});
Route::middleware('auth:admin')->group(function (){