• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/mailboxdirectory.php
  • Класс: BitrixMailMailboxDirectory
  • Вызов: MailboxDirectory::setSyncLock
static function setSyncLock(int $id, int $time)
{
	$entity = MailboxDirectoryTable::getEntity();
	$connection = $entity->getConnection();

	$query = sprintf(
		"UPDATE %s SET %s WHERE %s",
		$connection->getSqlHelper()->quote($entity->getDbTableName()),
		$connection->getSqlHelper()->prepareUpdate($entity->getDbTableName(), [
			'SYNC_LOCK' => $time,
		])[0],
		Query::buildFilterSql(
			$entity,
			[
				'=ID' => $id,
				[
					'LOGIC'      => 'OR',
					'=SYNC_LOCK' => 'IS NULL',
					' time() - Mailbox::getTimeout(),
				]
			]
		)
	);

	$connection->query($query);
	$count = $connection->getAffectedRowsCount();

	return $count;
}