- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/CounterService.php
- Класс: BitrixImV2MessageCounterService
- Вызов: CounterService::addStartingFrom
public function addStartingFrom(int $messageId, Relation $relation): void
{
$query = MessageTable::query()
->setSelect([
'ID_CONST' => new ExpressionField('ID_CONST', '0'),
'USER_ID_CONST' => new ExpressionField('USER_ID_CONST', (string)$this->getContext()->getUserId()),
'CHAT_ID_CONST' => new ExpressionField('CHAT_ID', (string)$relation->getChatId()),
'MESSAGE_ID' => 'ID',
'IS_MUTED' => new ExpressionField('IS_MUTED', $relation->getNotifyBlock() ? "'Y'" : "'N'"),
'CHAT_TYPE' => new ExpressionField('CHAT_TYPE', "'{$relation->getMessageType()}'"),
'DATE_CREATE'
])
->where('CHAT_ID', $relation->getChatId())
->where('MESSAGE_ID', '>=', $messageId)
;
if ($relation->getMessageType() !== IM_MESSAGE_SYSTEM)
{
$query->whereNot('AUTHOR_ID', $this->getContext()->getUserId());
}
MessageUnreadTable::insertSelect($query);
static::clearCache($this->getContext()->getUserId());
}