- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/CounterService.php
- Класс: BitrixImV2MessageCounterService
- Вызов: CounterService::getCountersForEachChat
protected function getCountersForEachChat(?array $chatIds = null, bool $forCurrentUser = true): array
{
$query = MessageUnreadTable::query()
->setSelect(['CHAT_ID', 'IS_MUTED', 'CHAT_TYPE', 'COUNT'])
->setGroup(['CHAT_ID', 'CHAT_TYPE', 'IS_MUTED'])
->registerRuntimeField('COUNT', new ExpressionField('COUNT', 'COUNT(*)'))
;
if (isset($chatIds) && !empty($chatIds))
{
$query->whereIn('CHAT_ID', $chatIds);
}
if ($forCurrentUser)
{
$query->where('USER_ID', $this->getContext()->getUserId());
}
return $query->fetchAll();
}