• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/ViewedService.php
  • Класс: BitrixImV2MessageViewedService
  • Вызов: ViewedService::getLastMessageIdsBetween
private function getLastMessageIdsBetween(Message $message, int $lowerBound, bool $includeBound): array
{
	$operator = $includeBound ? '>=' : '>';

	$query = MessageTable::query()
		->setSelect(['ID'])
		->where('CHAT_ID', $message->getChatId())
		->where('ID', '<=', $message->getMessageId())
		->where('ID', $operator, $lowerBound)
		->setOrder(['ID' => 'DESC'])
		->setLimit(100)
	;
	if ($message->getChat()->getType() !== IM_MESSAGE_SYSTEM)
	{
		$query->whereNot('AUTHOR_ID', $this->getContext()->getUserId());
	}

	return $query->fetchCollection()->getIdList();
}