feat: implement site visit in controller and add visit table
This commit is contained in:
@@ -6,15 +6,31 @@ use App\Http\Controllers\Controller;
|
||||
use App\Models\Booking;
|
||||
use App\Models\Flight;
|
||||
use App\Models\User;
|
||||
use App\Models\Visit;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$flightsCount = Flight::count();
|
||||
$usersCount = User::count();
|
||||
$bookingsCount = Booking::count();
|
||||
|
||||
return view('admin.dashboard', compact('flightsCount', 'usersCount', 'bookingsCount'));
|
||||
$startDate = Carbon::now()->subDays(9)->startOfDay();
|
||||
$endDate = Carbon::now()->endOfDay();
|
||||
|
||||
|
||||
$flightsCount = Flight::count();
|
||||
$usersCount = User::count();
|
||||
$bookingsCount = Booking::count();
|
||||
$indexPageCont = Visit::count();
|
||||
|
||||
$visits = Visit::whereBetween('created_at', [$startDate, $endDate])
|
||||
->selectRaw('DATE(created_at) as visit_date, COUNT(*) as total')
|
||||
->groupBy('visit_date')
|
||||
->orderBy('visit_date')
|
||||
->get();
|
||||
|
||||
|
||||
return view('admin.dashboard', compact('flightsCount', 'usersCount',
|
||||
'bookingsCount', 'indexPageCont' , 'visits'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -288,7 +288,6 @@ class FlightController extends Controller
|
||||
|
||||
'status' => [
|
||||
'required',
|
||||
'in:0,1',
|
||||
],
|
||||
]);
|
||||
|
||||
|
||||
@@ -5,13 +5,24 @@ namespace App\Http\Controllers;
|
||||
use App\Models\Airport;
|
||||
use App\Models\Flight;
|
||||
use App\Models\Tour;
|
||||
use App\Models\Visit;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class IndexController extends Controller
|
||||
{
|
||||
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
if (! $request->session()->has('visited')) {
|
||||
Visit::create([
|
||||
'ip_address' => $request->ip(),
|
||||
'url' => $request->fullUrl(),
|
||||
'user_agent' => $request->userAgent(),
|
||||
]);
|
||||
|
||||
$request->session()->put('visited', true);
|
||||
}
|
||||
|
||||
$flights = Flight::query()
|
||||
->where('status', \App\Enums\FlightStatus::ENABLE)
|
||||
->with([
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Enums\FlightStatus;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Attributes\Scope;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
@@ -52,8 +53,8 @@ class Flight extends Model
|
||||
'price' => 'float',
|
||||
'capacity' => 'int',
|
||||
'views' => 'int',
|
||||
'status' => 'int'
|
||||
];
|
||||
'status' => FlightStatus::class
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'title',
|
||||
|
||||
+4
-1
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Enums\TourStatus;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
@@ -15,7 +16,8 @@ class Tour extends Model
|
||||
'duration' => 'int',
|
||||
'views' => 'int',
|
||||
'price' => 'int',
|
||||
'status' => 'int',
|
||||
'status' => TourStatus::class,
|
||||
'departure_time'=> 'datetime',
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
@@ -30,6 +32,7 @@ class Tour extends Model
|
||||
'duration',
|
||||
'views',
|
||||
'price',
|
||||
'departure_time',
|
||||
'status',
|
||||
'created_at',
|
||||
];
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class Visit
|
||||
*
|
||||
* @property int $id
|
||||
* @property string|null $ip_address
|
||||
* @property string|null $url
|
||||
* @property string|null $user_agent
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class Visit extends Model
|
||||
{
|
||||
protected $table = 'visits';
|
||||
public static $snakeAttributes = false;
|
||||
|
||||
protected $fillable = [
|
||||
'ip_address',
|
||||
'url',
|
||||
'user_agent'
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user