- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/Delete/DeleteService.php
- Класс: BitrixImV2MessageDeleteDeleteService
- Вызов: DeleteService::updateRecent
private function updateRecent(): void
{
if ($this->chatLastMessage && (int)$this->chatLastMessage['ID'] !== $this->message->getId())
{
$update = [
'DATE_MESSAGE' => $this->chatLastMessage['DATE_CREATE'],
'DATE_UPDATE' => $this->chatLastMessage['DATE_CREATE'],
'ITEM_MID' => $this->chatLastMessage['ID'] ?? 0,
];
if ($this->chat instanceof ChatPrivateChat || $this->chat->getType() === Chat::IM_TYPE_PRIVATE)
{
$userId = $this->getContext()->getUserId();
$opponentId = $this->chat->getCompanion($userId)->getId();
RecentTable::updateByFilter(
[
'=USER_ID' => $userId,
'=ITEM_TYPE' => Chat::IM_TYPE_PRIVATE,
'=ITEM_ID' => $opponentId
],
$update
);
RecentTable::updateByFilter(
[
'=USER_ID' => $opponentId,
'=ITEM_TYPE' => Chat::IM_TYPE_PRIVATE,
'=ITEM_ID' => $userId
],
$update
);
}
else
{
RecentTable::updateByFilter(
['=ITEM_TYPE' => $this->chat->getType(), '=ITEM_ID' => $this->chat->getId()],
$update
);
}
}
}