Optimize query for related tickets - split into 3 separate queries #590
This commit is contained in:
parent
9a7622ed5c
commit
1631cacf98
2 changed files with 27 additions and 2 deletions
|
|
@ -337,6 +337,28 @@ class TicketController extends Controller
|
|||
$params['redirect_url'] = $cust_update_url;
|
||||
}
|
||||
|
||||
// optimized get related tickets
|
||||
$rel_tix = [];
|
||||
// one query for each so we use indeces
|
||||
if (!empty($obj->getFirstName()) && !empty($obj->getLastName()))
|
||||
$rel_tix[] = $em->getRepository(Ticket::class)->findBy(['first_name' => $obj->getFirstName(), 'last_name' => $obj->getLastName()]);
|
||||
if (!empty($obj->getContactNumber()))
|
||||
$rel_tix[] = $em->getRepository(Ticket::class)->findBy(['contact_num' => $obj->getContactNumber()]);
|
||||
if (!empty($obj->getPlateNumber()))
|
||||
$rel_tix[] = $em->getRepository(Ticket::class)->findBy(['plate_number' => $obj->getPlateNumber()]);
|
||||
|
||||
$consolidated_rel_tix = [];
|
||||
foreach ($rel_tix as $rel_tickets)
|
||||
{
|
||||
foreach ($rel_tickets as $rticket)
|
||||
{
|
||||
$rtid = $rticket->getID();
|
||||
$consolidated_rel_tix[$rtid] = $rticket;
|
||||
}
|
||||
}
|
||||
$params['related_tickets'] = $consolidated_rel_tix;
|
||||
|
||||
/*
|
||||
// get related tickets
|
||||
$qb = $em->getRepository(Ticket::class)
|
||||
->createQueryBuilder('q');
|
||||
|
|
@ -353,6 +375,8 @@ class TicketController extends Controller
|
|||
|
||||
$params['related_tickets'] = $query->getQuery()
|
||||
->getResult();
|
||||
*/
|
||||
|
||||
|
||||
$params['obj'] = $obj;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,9 +13,10 @@ use DateTime;
|
|||
/**
|
||||
* @ORM\Entity
|
||||
* @ORM\Table(name="ticket", indexes={
|
||||
* @ORM\Index(columns={"contact_num"}),
|
||||
* @ORM\Index(columns={"plate_number"}),
|
||||
* @ORM\Index(columns={"first_name"}, flags={"fulltext"}),
|
||||
* @ORM\Index(columns={"last_name"}, flags={"fulltext"})
|
||||
* @ORM\Index(columns={"first_name"}),
|
||||
* @ORM\Index(columns={"last_name"})
|
||||
* })
|
||||
*/
|
||||
class Ticket
|
||||
|
|
|
|||
Loading…
Reference in a new issue