403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/yandex.market/lib/logger/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/yandex.market/lib/logger/table.php
<?php

namespace Yandex\Market\Logger;

use Bitrix\Main;
use Yandex\Market;

Main\Localization\Loc::loadMessages(__FILE__);

class Table extends Market\Reference\Storage\Table
{
	const ENTITY_TYPE_EXPORT_RUN_ROOT = 'export_run_root';
	const ENTITY_TYPE_EXPORT_RUN_OFFER = 'export_run_offer';
	const ENTITY_TYPE_EXPORT_RUN_CATEGORY = 'export_run_category';
	const ENTITY_TYPE_EXPORT_RUN_CURRENCY = 'export_run_currency';
	const ENTITY_TYPE_EXPORT_RUN_PROMO_PRODUCT = 'export_promo_product';
	const ENTITY_TYPE_EXPORT_RUN_PROMO_GIFT = 'export_promo_gift';
	const ENTITY_TYPE_EXPORT_RUN_PROMO = 'export_promo';
	const ENTITY_TYPE_EXPORT_RUN_COLLECTION = 'export_collection';
	const ENTITY_TYPE_EXPORT_RUN_GIFT = 'export_gift';
	const ENTITY_TYPE_EXPORT_AGENT = 'export_agent';

	public static function getTableName()
	{
		return 'yamarket_log';
	}

	public static function createIndexes(Main\DB\Connection $connection)
	{
		$tableName = static::getTableName();

		$connection->createIndex($tableName, 'IX_' . $tableName . '_0', [ 'ENTITY_PARENT' ]);
		$connection->createIndex($tableName, 'IX_' . $tableName . '_1', [ 'ENTITY_TYPE', 'ENTITY_ID' ]);
	}

	public static function getUfId()
	{
		return 'YAMARKET_LOG';
	}

	public static function getMap()
	{
		return [
			new Main\Entity\IntegerField('ID', [
				'autocomplete' => true,
				'primary' => true,
			]),
			new Main\Entity\DatetimeField('TIMESTAMP_X', [
				'required' => true,
			]),
			new Main\Entity\EnumField('LEVEL', [
				'values' => Level::getVariants(),
				'required' => true,
			]),
			new Main\Entity\StringField('MESSAGE', [
				'required' => true,
				'size' => 255
			]),
			new Main\Entity\IntegerField('ERROR_CODE'),
			new Main\Entity\StringField('ENTITY_TYPE', [
				'size' => 20,
				'validation' => [__CLASS__, 'validateEntityType'],
			]),
			new Main\Entity\IntegerField('ENTITY_PARENT'),
			new Main\Entity\StringField('ENTITY_ID', [
				'size' => 20,
				'validation' => [__CLASS__, 'validateEntityId'],
			]),

            new Main\Entity\ExpressionField('ENTITY_ID_PART1', 'SUBSTRING_INDEX(%s, ":", 1)', 'ENTITY_ID'),
            new Main\Entity\ExpressionField('ENTITY_ID_PART2', 'SUBSTRING_INDEX(%s, ":", -1)', 'ENTITY_ID'),

			new Main\Entity\TextField(
				'CONTEXT',
				Market\Reference\Storage\Field\Serializer::getParameters()
			),

			// OFFER_ID

			new Main\Entity\ReferenceField('RUN_OFFER', Market\Export\Run\Storage\OfferTable::class, [
				'=this.ENTITY_PARENT' => 'ref.SETUP_ID',
				[
				    'LOGIC' => 'OR',
                    [
                        '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_OFFER ],
                        '=this.ENTITY_ID' => 'ref.ELEMENT_ID',
                    ],
                    [
                        '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_PROMO_PRODUCT ],
                        '=this.ENTITY_ID_PART2' => 'ref.ELEMENT_ID',
                    ]
                ]
			]),

			new Main\Entity\ExpressionField('OFFER_ID', '%s', 'RUN_OFFER.ELEMENT_ID'),

            // GIFT_ID

            new Main\Entity\ReferenceField('RUN_GIFT', Market\Export\Run\Storage\PromoGiftTable::class, [
                '=this.ENTITY_PARENT' => 'ref.SETUP_ID',
                [
                    'LOGIC' => 'OR',
                    [
                        '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_GIFT ],
                        '=this.ENTITY_ID' => 'ref.ELEMENT_ID',
                    ],
                    [
                        '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_PROMO_GIFT ],
                        '=this.ENTITY_ID_PART2' => 'ref.ELEMENT_ID',
                    ]
                ]
            ]),

            new Main\Entity\ExpressionField('GIFT_ID', '%s', 'RUN_GIFT.ELEMENT_ID'),

            // PROMO_ID

            new Main\Entity\ReferenceField('RUN_PROMO', Market\Export\Run\Storage\PromoTable::class, [
                '=this.ENTITY_PARENT' => 'ref.SETUP_ID',
                [
                    'LOGIC' => 'OR',
                    [
                        '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_PROMO ],
                        '=this.ENTITY_ID' => 'ref.ELEMENT_ID',
                    ],
                    [
                        '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_PROMO_PRODUCT ],
                        '=this.ENTITY_ID_PART1' => 'ref.ELEMENT_ID',
                    ],
                    [
                        '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_PROMO_GIFT ],
                        '=this.ENTITY_ID_PART1' => 'ref.ELEMENT_ID',
                    ],
                ]
            ]),

            new Main\Entity\ExpressionField('PROMO_ID', '%s', 'RUN_PROMO.ELEMENT_ID'),

            // COLLECTION_ID

            new Main\Entity\ReferenceField('RUN_COLLECTION', Market\Export\Run\Storage\CollectionTable::class, [
                '=this.ENTITY_PARENT' => 'ref.SETUP_ID',
	            '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_EXPORT_RUN_COLLECTION ],
	            '=this.ENTITY_ID' => 'ref.ELEMENT_ID',
            ]),

            new Main\Entity\ExpressionField('COLLECTION_ID', '%s', 'RUN_COLLECTION.COLLECTION_ID'),
            new Main\Entity\ExpressionField('COLLECTION_SIGN', '%s', 'RUN_COLLECTION.ELEMENT_ID'),

            // SETUP

			new Main\Entity\ReferenceField('SETUP', Market\Export\Setup\Table::class, [
				'=this.ENTITY_PARENT' => 'ref.ID'
			]),
		];
	}

	public static function migrate(Main\DB\Connection $connection)
	{
		static::migrateIndexes($connection);
		static::migrateContext($connection);
	}

	protected static function migrateIndexes(Main\DB\Connection $connection)
	{
		$tableName = static::getTableName();

		if (!$connection->isIndexExists($tableName, ['ENTITY_TYPE', 'ENTITY_ID']))
		{
			$entity = static::getEntity();

			Market\Migration\StorageFacade::dropIndexes($connection, $entity, [
				'IX_' . $tableName . '_0',
				'IX_' . $tableName . '_1',
			]);

			static::createIndexes($connection);
		}
	}

	protected static function migrateContext(Main\DB\Connection $connection)
	{
		$sqlHelper = $connection->getSqlHelper();
		$tableName = static::getTableName();

		$connection->queryExecute(sprintf(
			'ALTER TABLE %s MODIFY COLUMN %s text NOT NULL',
			$sqlHelper->quote($tableName),
			$sqlHelper->quote('CONTEXT')
		));
	}

	public static function validateEntityType()
	{
		return [
			new Main\Entity\Validator\Length(null, 20)
		];
	}

	public static function validateEntityId()
	{
		return [
			new Main\Entity\Validator\Length(null, 20)
		];
	}

	public static function getMapDescription()
	{
		$result = parent::getMapDescription();

		$result['LEVEL'] = static::extendLevelDescription($result['LEVEL']);
		$result['ENTITY_TYPE'] = static::extendEntityTypeDescription($result['ENTITY_TYPE']);
		$result['SETUP'] = static::extendSetupDescription($result['SETUP']);
		$result['PROMO_ID'] = static::extendPromoIdDescription($result['PROMO_ID']);
		$result['COLLECTION_ID'] = static::extendCollectionIdDescription($result['COLLECTION_ID']);
		$result['OFFER_ID'] = static::extendOfferIdDescription($result['OFFER_ID']);
		$result['GIFT_ID'] = static::extendGiftIdDescription($result['GIFT_ID']);

		return $result;
	}

	protected static function extendLevelDescription($field)
	{
		$field['USER_TYPE'] = Market\Ui\UserField\Manager::getUserType('log');
		$allowedTypes = [
			Level::CRITICAL => true,
			Level::ERROR => true,
			Level::WARNING => true
		];

		foreach ($field['VALUES'] as $optionKey => &$option)
		{
			if (isset($allowedTypes[$option['ID']]))
			{
				$option['LOG_LEVEL'] = $option['ID'];
			}
			else
			{
				unset($field['VALUES'][$optionKey]);
			}
		}
		unset($option);

		return $field;
	}

	protected static function extendEntityTypeDescription($field)
	{
		$field['USER_TYPE'] = Market\Ui\UserField\Manager::getUserType('enumeration');
		$field['VALUES'] = [];
		$entityTypeList = [
			static::ENTITY_TYPE_EXPORT_RUN_ROOT,
			static::ENTITY_TYPE_EXPORT_RUN_OFFER,
			static::ENTITY_TYPE_EXPORT_RUN_CATEGORY,
			static::ENTITY_TYPE_EXPORT_RUN_CURRENCY,
			static::ENTITY_TYPE_EXPORT_RUN_COLLECTION,
			static::ENTITY_TYPE_EXPORT_RUN_PROMO_PRODUCT,
			static::ENTITY_TYPE_EXPORT_RUN_PROMO_GIFT,
			static::ENTITY_TYPE_EXPORT_RUN_PROMO,
			static::ENTITY_TYPE_EXPORT_RUN_GIFT,
			static::ENTITY_TYPE_EXPORT_AGENT,
		];

		foreach ($entityTypeList as $entityType)
		{
			$field['VALUES'][] = [
				'ID' => $entityType,
				'VALUE' => static::getFieldEnumTitle('ENTITY_TYPE', $entityType)
			];
		}

		return $field;
	}

	protected static function extendSetupDescription($field)
	{
		$field['USER_TYPE'] = Market\Ui\UserField\Manager::getUserType('setup');
		$field['SETTINGS']['EDIT_URL'] =
			Market\Ui\Admin\Path::getModuleUrl('setup_edit', [ 'lang' => LANGUAGE_ID ])
			. '&id=#ID#';

		return $field;
	}

	protected static function extendPromoIdDescription($field)
	{
		$field['USER_TYPE'] = Market\Ui\UserField\Manager::getUserType('promo');
		$field['SETTINGS'] = [
			'DATA_CLASS' => Market\Export\Promo\Table::class,
		];

		return $field;
	}

	protected static function extendCollectionIdDescription($field)
	{
		$field['USER_TYPE'] = Market\Ui\UserField\Manager::getUserType('reference');
		$field['SETTINGS'] = [
			'DATA_CLASS' => Market\Export\Collection\Table::class,
		];

		return $field;
	}

	protected static function extendOfferIdDescription($field)
	{
		$field['USER_TYPE'] = Market\Ui\UserField\Manager::getUserType('iblockElement');

		return $field;
	}

	protected static function extendGiftIdDescription($field)
	{
		$field['USER_TYPE'] = Market\Ui\UserField\Manager::getUserType('iblockElement');

		return $field;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit