Merge branch '590-fix-slow-ticket-loading' into 'master-fix'
Optimize query for related tickets - split into 3 separate queries #590 See merge request jankstudio/resq!707
This commit is contained in:
commit
39eb6e6dba
2 changed files with 27 additions and 2 deletions
|
|
@ -337,6 +337,28 @@ class TicketController extends Controller
|
||||||
$params['redirect_url'] = $cust_update_url;
|
$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
|
// get related tickets
|
||||||
$qb = $em->getRepository(Ticket::class)
|
$qb = $em->getRepository(Ticket::class)
|
||||||
->createQueryBuilder('q');
|
->createQueryBuilder('q');
|
||||||
|
|
@ -353,6 +375,8 @@ class TicketController extends Controller
|
||||||
|
|
||||||
$params['related_tickets'] = $query->getQuery()
|
$params['related_tickets'] = $query->getQuery()
|
||||||
->getResult();
|
->getResult();
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
$params['obj'] = $obj;
|
$params['obj'] = $obj;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,10 @@ use DateTime;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
* @ORM\Table(name="ticket", indexes={
|
* @ORM\Table(name="ticket", indexes={
|
||||||
|
* @ORM\Index(columns={"contact_num"}),
|
||||||
* @ORM\Index(columns={"plate_number"}),
|
* @ORM\Index(columns={"plate_number"}),
|
||||||
* @ORM\Index(columns={"first_name"}, flags={"fulltext"}),
|
* @ORM\Index(columns={"first_name"}),
|
||||||
* @ORM\Index(columns={"last_name"}, flags={"fulltext"})
|
* @ORM\Index(columns={"last_name"})
|
||||||
* })
|
* })
|
||||||
*/
|
*/
|
||||||
class Ticket
|
class Ticket
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue