• Модуль: 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();
}