This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Cron\Nightly;
|
||||
|
||||
use App\Contracts\Listener;
|
||||
use App\Events\CronNightly;
|
||||
use App\Services\AircraftService;
|
||||
use App\Services\UserService;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
@@ -12,11 +13,13 @@ use Illuminate\Support\Facades\Log;
|
||||
*/
|
||||
class RecalculateStats extends Listener
|
||||
{
|
||||
private $aircraftSvc;
|
||||
private $userSvc;
|
||||
|
||||
public function __construct(UserService $userService)
|
||||
public function __construct(AircraftService $aircraftSvc, UserService $userSvc)
|
||||
{
|
||||
$this->userSvc = $userService;
|
||||
$this->aircraftSvc = $aircraftSvc;
|
||||
$this->userSvc = $userSvc;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,10 +32,10 @@ class RecalculateStats extends Listener
|
||||
*/
|
||||
public function handle(CronNightly $event): void
|
||||
{
|
||||
Log::info('Recalculating balances');
|
||||
|
||||
Log::info('Recalculating user stats');
|
||||
$this->userSvc->recalculateAllUserStats();
|
||||
|
||||
Log::info('Done recalculating stats');
|
||||
Log::info('Recalcuating aircraft status');
|
||||
$this->aircraftSvc->recalculateStats();
|
||||
}
|
||||
}
|
||||
|
||||
32
app/Services/AircraftService.php
Normal file
32
app/Services/AircraftService.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Contracts\Service;
|
||||
use App\Models\Aircraft;
|
||||
use App\Models\Pirep;
|
||||
use App\Repositories\PirepRepository;
|
||||
|
||||
class AircraftService extends Service
|
||||
{
|
||||
private $pirepRepo;
|
||||
|
||||
public function __construct(PirepRepository $pirepRepo)
|
||||
{
|
||||
$this->pirepRepo = $pirepRepo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recalculate all aircraft stats and hours
|
||||
*/
|
||||
public function recalculateStats()
|
||||
{
|
||||
$allAircraft = Aircraft::all(); // TODO: Soft delete
|
||||
foreach ($allAircraft as $aircraft) {
|
||||
$pirep_time_total = Pirep::where('aircraft_id', $aircraft->id)
|
||||
->sum('flight_time');
|
||||
$aircraft->flight_time = $pirep_time_total;
|
||||
$aircraft->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user