• Модуль: 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);
}