- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/ViewedService.php
- Класс: BitrixImV2MessageViewedService
- Вызов: ViewedService::addTo
public function addTo(Message $message): Result
{
$lowerBound = $this->getLastViewedMessageId($message->getChatId());
$includeBound = false;
if ($lowerBound === null)
{
$lowerBound = $message->getChat()->getStartId($this->getContext()->getUserId());
$includeBound = true;
}
$messageIds = $this->getLastMessageIdsBetween($message, $lowerBound, $includeBound);
$dateViewed = new DateTime();
$userId = $this->getContext()->getUserId();
$chatId = $message->getChatId();
$insertFields = [];
foreach ($messageIds as $messageId)
{
$insertFields[] = [
'USER_ID' => $userId,
'CHAT_ID' => $chatId,
'MESSAGE_ID' => $messageId,
'DATE_CREATE' => $dateViewed,
];
}
MessageViewedTable::multiplyInsertWithoutDuplicate($insertFields, ['DEADLOCK_SAFE' => true]);
return (new Result())->setResult(['VIEWED_MESSAGES' => $messageIds]);
}