take into account system notification in counter and fix hardcoded user id

This commit is contained in:
Julien Fastré 2022-04-06 13:35:24 +02:00
parent 2b67f105f7
commit a4afe73efe

View File

@ -56,17 +56,18 @@ final class NotificationRepository implements ObjectRepository
if (null === $this->notificationByRelatedEntityAndUserAssociatedStatement) { if (null === $this->notificationByRelatedEntityAndUserAssociatedStatement) {
$sql = $sql =
'SELECT 'SELECT
SUM((EXISTS (SELECT 1 AS c FROM chill_main_notification_addresses_unread cmnau WHERE user_id = 1812 and cmnau.notification_id = cmn.id))::int) AS unread, SUM((EXISTS (SELECT 1 AS c FROM chill_main_notification_addresses_unread cmnau JOIN chill_main_notification cmn ON cmnau.notification_id = cmn.id WHERE user_id = :userid and cmnau.notification_id = cmn.id and cmn.sender_id IS NOT NULL))::int) AS unread,
SUM((cmn.sender_id = 1812)::int) AS sent, SUM((cmn.sender_id = :userid)::int) AS sent,
COUNT(cmn.*) AS total COUNT(cmn.*) AS total
FROM chill_main_notification cmn FROM chill_main_notification cmn
WHERE relatedentityclass = :relatedEntityClass AND relatedentityid = :relatedEntityId AND sender_id IS NOT NULL'; WHERE relatedentityclass = :relatedEntityClass AND relatedentityid = :relatedEntityId AND sender_id IS NOT NULL';
$this->notificationByRelatedEntityAndUserAssociatedStatement = $this->notificationByRelatedEntityAndUserAssociatedStatement =
$this->em->getConnection()->prepare($sql); $this->em->getConnection()->prepare($sql);
} }
$results = $this->notificationByRelatedEntityAndUserAssociatedStatement $results = $this->notificationByRelatedEntityAndUserAssociatedStatement
->executeQuery(['relatedEntityClass' => $relatedEntityClass, 'relatedEntityId' => $relatedEntityId]); ->executeQuery(['relatedEntityClass' => $relatedEntityClass, 'relatedEntityId' => $relatedEntityId, 'userid' => $user->getId()]);
$result = $results->fetchAssociative(); $result = $results->fetchAssociative();