PHRAS-2666_slow-notifications_4.1

removed join on basket_elements where useless
!!! WIP !!!
This commit is contained in:
Jean-Yves Gaulier
2019-07-15 16:23:49 +02:00
parent 9709f6f8f4
commit b0c0f65764

View File

@@ -59,16 +59,16 @@ class BasketRepository extends EntityRepository
*/ */
public function findActiveByUser(User $user, $sort = null) public function findActiveByUser(User $user, $sort = null)
{ {
$dql = 'SELECT b $dql = "SELECT b\n"
FROM Phraseanet:Basket b . " FROM Phraseanet:Basket b\n"
LEFT JOIN b.elements e . " WHERE b.user = :usr_id\n"
WHERE b.user = :usr_id . " AND b.archived = false";
AND b.archived = false';
if ($sort == 'date') { if ($sort == 'date') {
$dql .= ' ORDER BY b.created DESC'; $dql .= "\n ORDER BY b.created DESC";
} elseif ($sort == 'name') { }
$dql .= ' ORDER BY b.name ASC'; elseif ($sort == 'name') {
$dql .= "\n ORDER BY b.name ASC";
} }
$query = $this->_em->createQuery($dql); $query = $this->_em->createQuery($dql);
@@ -85,19 +85,19 @@ class BasketRepository extends EntityRepository
*/ */
public function findUnreadActiveByUser(User $user) public function findUnreadActiveByUser(User $user)
{ {
$dql = 'SELECT b $dql = "SELECT b\n"
FROM Phraseanet:Basket b . " FROM (Phraseanet:Basket b LEFT JOIN b.validation s)\n"
JOIN b.elements e . " INNER JOIN s.participants p\n"
LEFT JOIN b.validation s . " WHERE b.archived = false\n"
LEFT JOIN s.participants p . " AND (\n"
WHERE b.archived = false . " (b.user = :usr_id_owner AND b.isRead = false)\n"
AND ( . " OR \n"
(b.user = :usr_id_owner AND b.isRead = false) . " (b.user != :usr_id_ownertwo\n"
OR (b.user != :usr_id_ownertwo . " AND p.user = :usr_id_participant\n"
AND p.user = :usr_id_participant . " AND p.is_aware = false\n"
AND p.is_aware = false) . " AND s.expires > CURRENT_TIMESTAMP()\n"
) . " )\n"
AND (s.expires IS NULL OR s.expires > CURRENT_TIMESTAMP())'; . " )";
$params = [ $params = [
'usr_id_owner' => $user->getId(), 'usr_id_owner' => $user->getId(),