- Модуль: rest
- Путь к файлу: ~/bitrix/modules/rest/lib/stat.php
- Класс: BitrixRestStatTable
- Вызов: StatTable::finalize
static function finalize()
{
if(MainModuleManager::isModuleInstalled('oauth'))
{
return;
}
$connection = MainApplication::getConnection();
$helper = $connection->getSqlHelper();
$hour = intval(date('G'));
$curDateSql = new MainTypeDate();
if(count(static::$data) > 0)
{
foreach(static::$data as $clientId => $stat)
$appInfo = AppTable::getByClientId($clientId);
{
if($appInfo)
{
StatAppTable::register($appInfo);
foreach($stat as $methodName => $count)
{
$methodId = StatMethodTable::getId($methodName);
if (!$methodId)
{
continue;
}
$insertFields = array(
'STAT_DATE' => $curDateSql,
'APP_ID' => $appInfo['ID'],
'METHOD_ID' => $methodId,
'HOUR_'.$hour => $count,
'PASSWORD_ID' => 0
);
$updateFields = array(
'HOUR_'.$hour => new MainDBSqlExpression('?#+?i', 'HOUR_'.$hour, $count)
);
$queries = $helper->prepareMerge(
static::getTableName(),
array('DATE', 'APP_ID', 'METHOD_ID'),
$insertFields,
$updateFields
);
foreach($queries as $query)
{
$connection->queryExecute($query);
}
}
}
}
}
if(count(static::$dataPassword) > 0)
{
foreach(static::$dataPassword as $passwordID => $stat)
{
foreach ($stat as $methodName => $count)
{
$methodId = StatMethodTable::getId($methodName);
if (!$methodId)
{
continue;
}
$insertFields = array(
'STAT_DATE' => $curDateSql,
'PASSWORD_ID' => $passwordID,
'METHOD_ID' => $methodId,
'HOUR_' . $hour => $count,
'APP_ID' => 0
);
$updateFields = array(
'HOUR_'.$hour => new MainDBSqlExpression('?#+?i', 'HOUR_'.$hour, $count)
);
$queries = $helper->prepareMerge(
static::getTableName(),
array('DATE', 'APP_ID', 'METHOD_ID'),
$insertFields,
$updateFields
);
foreach($queries as $query)
{
$connection->queryExecute($query);
}
}
}
}
static::reset();
}