Current Path : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/disk/lib/volume/module/ |
Current File : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/disk/lib/volume/module/subscribe.php |
<?php namespace Bitrix\Disk\Volume\Module; use Bitrix\Disk\Volume; /** * Disk storage volume measurement class. * @package Bitrix\Disk\Volume */ class Subscribe extends Volume\Module\Module { /** @var string */ protected static $moduleId = 'subscribe'; /** * Runs measure test to get volumes of selecting objects. * @param array $collectData List types data to collect: ATTACHED_OBJECT, SHARING_OBJECT, EXTERNAL_LINK, UNNECESSARY_VERSION. * @return $this */ public function measure($collectData = array()) { if (!$this->isMeasureAvailable()) { $this->addError(new \Bitrix\Main\Error('', self::ERROR_MEASURE_UNAVAILABLE)); return $this; } $connection = \Bitrix\Main\Application::getConnection(); $indicatorType = $connection->getSqlHelper()->forSql(static::className()); $ownerId = (string)$this->getOwner(); $querySql = " SELECT '{$indicatorType}' as INDICATOR_TYPE, {$ownerId} as OWNER_ID, ". $connection->getSqlHelper()->getCurrentDateTimeFunction(). " as CREATE_TIME, SUM(files.FILE_SIZE) as FILE_SIZE, COUNT(files.ID) as FILE_COUNT, 0 as DISK_SIZE, 0 as DISK_COUNT FROM b_file files INNER JOIN b_posting_file attachment ON files.id = attachment.FILE_ID "; $columnList = Volume\QueryHelper::prepareInsert( array( 'INDICATOR_TYPE', 'OWNER_ID', 'CREATE_TIME', 'FILE_SIZE', 'FILE_COUNT', 'DISK_SIZE', 'DISK_COUNT', ), $this->getSelect() ); $tableName = \Bitrix\Disk\Internals\VolumeTable::getTableName(); $connection->queryExecute("INSERT INTO {$tableName} ({$columnList}) {$querySql}"); return $this; } }