- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/disk/sender.php
- Класс: BitrixImDiskSender
- Вызов: Sender::hasFileInLastMessages
static function hasFileInLastMessages(File $file, int $chatId, int $messageInterval = 10): bool
{
$result = BitrixImModelMessageTable::getList([
'select' => [
'ID',
'MESSAGE_FILE_ID' => 'FILE.PARAM_VALUE',
],
'filter' => [
'=CHAT_ID' => $chatId
],
'runtime' => [
new BitrixMainEntityReferenceField(
'FILE',
'BitrixImModelMessageParamTable',
[
"=ref.MESSAGE_ID" => "this.ID",
"ref.PARAM_NAME" => new BitrixMainDBSqlExpression("?s", "FILE_ID")
],
["join_type" => "LEFT"]
),
],
'order' => ['ID' => 'DESC'],
'limit' => $messageInterval,
]);
while ($row = $result->fetch())
{
if ($row['MESSAGE_FILE_ID'] == $file->getId())
{
return false;
}
}
return true;
}