- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/viewed.php
- Класс: BitrixTasksInternalsTaskViewedTable
- Вызов: ViewedTable::readAll
static function readAll(int $currentUserId, string $userJoin, string $groupCondition = ''): void
{
$connection = MainApplication::getConnection();
$sqlHelper = $connection->getSqlHelper();
$viewedDate = $sqlHelper->convertToDbDateTime(new DateTime());
$list = static::getListForReadAll($currentUserId, $userJoin, $groupCondition);
$inserts = [];
foreach ($list as $row)
{
$inserts[] = '(' . (int)$row['ID'] . ', ' . $currentUserId . ', ' . $viewedDate . ')';
}
$chunks = array_chunk($inserts, self::STEP_LIMIT);
unset($inserts);
foreach ($chunks as $chunk)
{
$sql = "
INSERT INTO b_tasks_viewed (TASK_ID, USER_ID, VIEWED_DATE)
VALUES " . implode(',', $chunk) . "
ON DUPLICATE KEY UPDATE VIEWED_DATE = {$viewedDate}
";
$connection->query($sql);
}
}