Resolve "Improve performance for capi call for vehicles" #1573
1 changed files with 27 additions and 10 deletions
|
|
@ -77,31 +77,48 @@ class VehicleController extends APIController
|
|||
{
|
||||
$this->denyAccessUnlessGranted('vehicle.list', null, 'No access.');
|
||||
|
||||
$conn = $em->getConnection();
|
||||
// get manufacturers
|
||||
$mfgs = $em->getRepository(VehicleManufacturer::class)->findBy([], ['name' => 'ASC']);
|
||||
$mfg_sql = 'SELECT vmfg.id, vmfg.name FROM vehicle_manufacturer vmfg ORDER BY vmfg.name ASC';
|
||||
|
||||
// get manufacturer results
|
||||
$mfg_stmt = $conn->prepare($mfg_sql);
|
||||
$mfg_stmt->execute();
|
||||
|
||||
$mfg_results = $mfg_stmt->fetchAll();
|
||||
|
||||
// get vehicles
|
||||
$vehicles = $em->getRepository(Vehicle::class)->findBy([], ['manufacturer' => 'ASC', 'make' => 'ASC']);
|
||||
$vehicle_sql = 'SELECT v.id, v.manufacturer_id, v.make, v.model_year_from, v.model_year_to
|
||||
FROM vehicle v ORDER BY v.manufacturer_id ASC, v.make ASC';
|
||||
|
||||
// get vehicle results
|
||||
$vehicle_stmt = $conn->prepare($vehicle_sql);
|
||||
$vehicle_stmt->execute();
|
||||
|
||||
$vehicle_results = $vehicle_stmt->fetchAll();
|
||||
|
||||
// process manufacturer results
|
||||
$mfg_data = [];
|
||||
foreach($mfgs as $mfg)
|
||||
foreach($mfg_results as $mfg_row)
|
||||
{
|
||||
$mfg_data[] = [
|
||||
'id' => $mfg->getID(),
|
||||
'name' => $mfg->getName(),
|
||||
'id' => $mfg_row['id'],
|
||||
'name' => $mfg_row['name'],
|
||||
];
|
||||
}
|
||||
|
||||
// process vehicle results
|
||||
$make_data = [];
|
||||
foreach($vehicles as $vehicle)
|
||||
foreach($vehicle_results as $vrow)
|
||||
{
|
||||
// format the model year from and model year to
|
||||
$model_year = $vrow['model_year_from' ] . ' - ' . $vrow['model_year_to'];
|
||||
|
||||
$make_data[] = [
|
||||
'id' => $vehicle->getID(),
|
||||
'mfg_id' => $vehicle->getManufacturer()->getID(),
|
||||
'make' => $vehicle->getMake(),
|
||||
'model' => $vehicle->getModelYearFormatted(),
|
||||
'id' => $vrow['id'],
|
||||
'mfg_id' => $vrow['manufacturer_id'],
|
||||
'make' => $vrow['make'],
|
||||
'model' => $model_year,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue