- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/event/garbagecollector.php
- Класс: BitrixTasksInternalsCounterEventGarbageCollector
- Вызов: GarbageCollector::readTopics
private function readTopics(int $userId, array $topicIds)
{
$forumId = Comment::getForumId();
$sqlHelper = Application::getConnection()->getSqlHelper();
$viewedTime = $this->viewedTime;
$viewedTime = $sqlHelper->convertToDbDateTime($viewedTime);
$inserts = [];
foreach ($topicIds as $topicId)
{
$inserts[] = '(' . (int) $topicId . ', ' . $userId . ', ' . $forumId . ', ' . $viewedTime . ')';
}
$sql = "
INSERT INTO b_forum_user_topic (TOPIC_ID, USER_ID, FORUM_ID, LAST_VISIT)
VALUES " . implode(',', $inserts) . "
ON DUPLICATE KEY UPDATE LAST_VISIT = {$viewedTime}
";
Application::getConnection()->query($sql);
}