Commit df6292284e7f8e3742187db08a5f3063d24592cd
1 parent
02d3b386
console csv parsing
Showing
24 changed files
with
82 additions
and
455 deletions
Show diff stats
backend/components/base/BaseController.php
... | ... | @@ -45,11 +45,9 @@ class BaseController extends Controller { |
45 | 45 | |
46 | 46 | |
47 | 47 | } |
48 | - | |
48 | +// | |
49 | 49 | // private function resizeImg($w, $h, $filepath,$newfilepath){ |
50 | -// list($orig_width, $orig_height) = getimagesize($filepath); | |
51 | -// $width = $orig_width; | |
52 | -// $height = $orig_height; | |
50 | +// list($width, $height) = getimagesize($filepath); | |
53 | 51 | // if($width > $height) { |
54 | 52 | // $y = 0; |
55 | 53 | // $x = ($width - $height) / 2; |
... | ... | @@ -76,7 +74,7 @@ class BaseController extends Controller { |
76 | 74 | { |
77 | 75 | |
78 | 76 | $model = new ImageSizerForm(); |
79 | - //die(print_r(Yii::$app->request->post())); | |
77 | + | |
80 | 78 | if ($model->load(Yii::$app->request->post())) { |
81 | 79 | |
82 | 80 | $model->file = UploadedFile::getInstance($model, 'file'); |
... | ... | @@ -85,6 +83,7 @@ class BaseController extends Controller { |
85 | 83 | $imgDir = Yii::getAlias('@storage/'.$md5_file.'/'); |
86 | 84 | $imageAlias = Yii::getAlias($imgDir.$model->width.'x'.$model->height.'.'.$model->file->extension); |
87 | 85 | $imageLink = '/storage/'.$md5_file.$model->width.'x'.$model->height.'.'.$model->file->extension; |
86 | + | |
88 | 87 | if(!is_dir($imgDir)) { |
89 | 88 | mkdir($imgDir, 0755, true); |
90 | 89 | } | ... | ... |
backend/components/views/image_sizer.php
... | ... | @@ -12,7 +12,7 @@ $this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl |
12 | 12 | |
13 | 13 | ?> |
14 | 14 | |
15 | -<?= $form->field($model, 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo"]); ?> | |
15 | +<?= $form->field( new \backend\models\ImageSizerForm(), 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo"]); ?> | |
16 | 16 | |
17 | 17 | <?= $form->field($model,$field)->hiddenInput(['id' => "{$field}_picture_link"]) ?> |
18 | 18 | |
... | ... | @@ -25,7 +25,7 @@ $this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl |
25 | 25 | |
26 | 26 | $("#<?= $field?>").fileupload({ |
27 | 27 | dataType: 'json', |
28 | - formData: { | |
28 | + ImageSizerForm: { | |
29 | 29 | height: <?=$height?>, |
30 | 30 | width: <?= $width?> |
31 | 31 | }, | ... | ... |
backend/config/main.php
... | ... | @@ -5,7 +5,6 @@ $params = array_merge( |
5 | 5 | require(__DIR__ . '/params.php'), |
6 | 6 | require(__DIR__ . '/params-local.php') |
7 | 7 | ); |
8 | -$mp_configuration = require( __DIR__ . '/../components/parsers/config.php'); | |
9 | 8 | |
10 | 9 | return [ |
11 | 10 | 'id' => 'app-backend', |
... | ... | @@ -39,15 +38,7 @@ return [ |
39 | 38 | 'adminUrl' => '/admin' |
40 | 39 | |
41 | 40 | ], |
42 | - 'multiparser'=>[ | |
43 | 41 | |
44 | - 'class' => 'yii\multiparser\YiiMultiparser', | |
45 | - 'configuration' => $mp_configuration, | |
46 | - 'as behavior' => [ | |
47 | - 'class' => 'backend\components\parsers\CustomConverter', | |
48 | - ], | |
49 | - | |
50 | - ], | |
51 | 42 | ], |
52 | 43 | 'params' => $params, |
53 | 44 | ]; | ... | ... |
backend/controllers/ParserController.php
... | ... | @@ -117,7 +117,6 @@ class ParserController extends BaseController |
117 | 117 | // сохраняем в кеш модель - в ней настройки для дальнейшей обработки данных |
118 | 118 | Yii::$app->getCache()->set('parser_configuration', serialize($model)); |
119 | 119 | |
120 | - | |
121 | 120 | } else { |
122 | 121 | // не прошла валидация форма загрузки файлов |
123 | 122 | //@todo - отправка на страницу ошибок |
... | ... | @@ -219,11 +218,10 @@ class ParserController extends BaseController |
219 | 218 | |
220 | 219 | public function actionServerFiles () |
221 | 220 | { |
222 | - | |
223 | 221 | $arr_id_files = []; |
224 | 222 | |
225 | 223 | // получим список файлов которые ожидают к загрузке |
226 | - foreach ( glob(Yii::getAlias('@temp_upload') . '/*.csv') as $server_file ) { | |
224 | + foreach ( glob(Yii::getAlias('@temp_upload') . '/*.csv' ) as $server_file ) { | |
227 | 225 | $file_id = basename($server_file,".csv"); |
228 | 226 | $arr_id_files[] = (int) $file_id; |
229 | 227 | } |
... | ... | @@ -265,74 +263,17 @@ class ParserController extends BaseController |
265 | 263 | |
266 | 264 | public function actionLaunchCroneUploads () |
267 | 265 | { |
268 | - | |
269 | - | |
270 | 266 | foreach (glob(Yii::getAlias('@temp_upload') . '/*.csv') as $server_file) { |
271 | 267 | |
272 | 268 | $file_name = basename($server_file,".csv"); |
273 | - rename( $server_file, Yii::getAlias('@auto_upload') . '/' . $file_name . '.csv'); | |
269 | + // rename( $server_file, Yii::getAlias('@auto_upload') . '/' . $file_name . '.csv'); | |
270 | + copy( $server_file, Yii::getAlias('@auto_upload') . '/' . $file_name . '.csv' ); | |
274 | 271 | |
275 | 272 | } |
276 | - | |
277 | - //$this->redirect('server-files'); | |
278 | - $this->actionParseCsv(); | |
273 | + Yii::$app->session->setFlash( 'server-files', 'Файл успешно загружен' ); | |
274 | + $this->redirect('server-files'); | |
279 | 275 | } |
280 | 276 | |
281 | - public function actionParseCsv () | |
282 | - { | |
283 | - // Console::output('1'); | |
284 | - foreach (glob( \Yii::getAlias('@auto_upload') . '/*.csv' ) as $file_path) { | |
285 | - $file_name = basename( $file_path,".csv" ); | |
286 | - // Console::output('2'); | |
287 | - $importer_id = ImportersFiles::findOne(['id' => $file_name])->importer_id; | |
288 | - $keys = Importers::findOne( ['id' => $importer_id] )->keys; | |
289 | - | |
290 | - $config = ['record_id' => $file_name, | |
291 | - 'importer_id' => $importer_id, | |
292 | - 'parser_config' => ['keys' => $keys, | |
293 | - 'mode' => 'console'] | |
294 | - ]; | |
295 | - // Console::output('3'); | |
296 | - if( $this->parseFileConsole( $file_path, $config ) ){ | |
297 | - // Console::output('4'); | |
298 | - unlink( $file_path ); | |
299 | - if (isset( $arr_id_files[$file_path] ) ) { | |
300 | - unset( $arr_id_files[$file_path] ); | |
301 | - } | |
302 | - } | |
303 | - } | |
304 | - | |
305 | - | |
306 | - //return $this->redirect('serverFiles'); | |
307 | - } | |
308 | 277 | |
309 | 278 | |
310 | - protected function parseFileConsole( $file_path, $configuration ){ | |
311 | - | |
312 | - if( !file_exists( $file_path ) ) | |
313 | - throw new ErrorException("$file_path - файл не найден!"); | |
314 | - | |
315 | - $parser_config = []; | |
316 | - if ( isset( $configuration['parser_config'] ) ) { | |
317 | - $parser_config = $configuration['parser_config']; | |
318 | - } | |
319 | - $data = \Yii::$app->multiparser->parse( $file_path, $parser_config ); | |
320 | - if (! $data) { | |
321 | - // @todo переделать, что бы ошибка автоматически останавливала сценарий | |
322 | - die; | |
323 | - } | |
324 | - | |
325 | - | |
326 | - $writer = new PriceWriter(); | |
327 | - $writer->configuration = $configuration; | |
328 | - $writer->data = $data; | |
329 | - $writer->mode = 1; //console-режим | |
330 | - if ( $writer->writeDataToDB() ){ | |
331 | - | |
332 | - return true; | |
333 | - } | |
334 | - | |
335 | - return false; | |
336 | - } | |
337 | - | |
338 | 279 | } | ... | ... |
backend/models/ImageSizerForm.php
backend/views/parser/server-files.php
... | ... | @@ -19,6 +19,7 @@ Pjax::begin(['id' => 'server_files_grid']); |
19 | 19 | |
20 | 20 | ?> |
21 | 21 | <div class="catalog-index"> |
22 | + <?= Html::tag('h3', \Yii::$app->session->setFlash( 'server-files'),['class'=>'bg-success'])?> | |
22 | 23 | |
23 | 24 | <h1><?= Html::encode($this->title) ?></h1> |
24 | 25 | ... | ... |
common/components/PriceWriter.php
... | ... | @@ -34,9 +34,8 @@ class PriceWriter { |
34 | 34 | |
35 | 35 | // 2. запишем полученные данные в таблицу товаров (Details) |
36 | 36 | $details_model = new Details(); |
37 | - | |
38 | 37 | // только для ручной загрузки, в авто режиме все делает конвертер при первом же проходе (в процессе парсинга) |
39 | - if ($this->mode = 0) { | |
38 | + if ($this->mode == 0) { | |
40 | 39 | // преобразуем числовые значения |
41 | 40 | foreach ($this->data as &$row) { |
42 | 41 | $row['PRICE'] = \Yii::$app->multiparser->convertToFloat($row['PRICE']); |
... | ... | @@ -48,7 +47,6 @@ class PriceWriter { |
48 | 47 | |
49 | 48 | // проверим все ли обязательные колонки были указаны пользователем |
50 | 49 | $details_model->load(['Details' => $row]); |
51 | - | |
52 | 50 | if (!$details_model->validate()) |
53 | 51 | //@todo предоставить более детальную информацию об ошибке |
54 | 52 | throw new \ErrorException('Ошибка записи товаров'); |
... | ... | @@ -85,4 +83,6 @@ class PriceWriter { |
85 | 83 | |
86 | 84 | return true; |
87 | 85 | } |
86 | + | |
87 | + | |
88 | 88 | } |
89 | 89 | \ No newline at end of file | ... | ... |
backend/components/parsers/CustomConverter.php renamed to common/components/parsers/CustomConverter.php
backend/components/parsers/CustomCsvParser.php renamed to common/components/parsers/CustomCsvParser.php
... | ... | @@ -38,7 +38,7 @@ class CustomCsvParser extends \yii\multiparser\CsvParser { |
38 | 38 | */ |
39 | 39 | protected function convert($arr) |
40 | 40 | { |
41 | - $arr = \Yii::$app->multiparser->convertByConfiguration($arr, $this->converter_conf); | |
41 | + $arr = \Yii::$app->multiparser->convertByConfiguration($arr, $this->converter_conf); | |
42 | 42 | |
43 | 43 | return $arr; |
44 | 44 | ... | ... |
backend/components/parsers/MailParser.php renamed to common/components/parsers/MailParser.php
backend/components/parsers/config.php renamed to common/components/parsers/config.php
... | ... | @@ -7,17 +7,6 @@ |
7 | 7 | 'converter_conf' => ['class' => ' backend\components\parsers\CustomConverter', |
8 | 8 | 'configuration' => ["string" => 'DESCR'],] |
9 | 9 | ], |
10 | - | |
11 | - 'basic_column' => [ | |
12 | - Null => 'Пусто', | |
13 | - "BRAND" => 'Бренд', | |
14 | - "ARTICLE"=> 'Артикул', | |
15 | - "PRICE" => 'Цена', | |
16 | - "DESCR" => 'Наименование', | |
17 | - "BOX" => 'Колво', | |
18 | - "ADD_BOX"=> 'В пути', | |
19 | - "GROUP" => 'Группа RG' | |
20 | - ], | |
21 | 10 | 'console' => |
22 | 11 | ['class' => 'backend\components\parsers\CustomCsvParser', |
23 | 12 | 'auto_detect_first_line' => true, |
... | ... | @@ -27,13 +16,13 @@ |
27 | 16 | 'configuration' => ["string" => 'DESCR', |
28 | 17 | "float" => 'PRICE', |
29 | 18 | "integer" => ['BOX','ADD_BOX'], |
30 | - "details" => [], // @todo сделать отдельно конфигурирование валидации | |
31 | - "integer" => ['BOX','ADD_BOX'] | |
19 | + "details" => [] // @todo сделать отдельно конфигурирование валидации | |
32 | 20 | |
33 | 21 | ] |
34 | 22 | ],], |
35 | 23 | |
36 | 24 | 'basic_column' => [ |
25 | + Null => 'Пусто', | |
37 | 26 | "BRAND" => 'Бренд', |
38 | 27 | "ARTICLE"=> 'Артикул', |
39 | 28 | "PRICE" => 'Цена', |
... | ... | @@ -47,22 +36,15 @@ |
47 | 36 | ['web' => |
48 | 37 | ['class' => 'yii\multiparser\XmlParser', |
49 | 38 | 'node' => 'Товар',], |
50 | - | |
51 | - 'basic_column' => [ | |
52 | - "BRAND" => 'Производитель', | |
53 | - "ARTICLE"=> 'Код', | |
54 | - "PRICE" => 'Розница', | |
55 | - "DESCR" => 'Наименование', | |
56 | - "BOX" => 'Колво', | |
57 | - "ADD_BOX"=> 'Ожидаемое', | |
58 | - "GROUP" => 'Группа' | |
59 | - ], | |
60 | - ] | |
39 | + ], | |
40 | + 'basic_column' => [ | |
41 | + "BRAND" => 'Производитель', | |
42 | + "ARTICLE"=> 'Код', | |
43 | + "PRICE" => 'Розница', | |
44 | + "DESCR" => 'Наименование', | |
45 | + "BOX" => 'Колво', | |
46 | + "ADD_BOX"=> 'Ожидаемое', | |
47 | + "GROUP" => 'Группа' | |
48 | + ], | |
61 | 49 | ]; |
62 | 50 | |
63 | - | |
64 | -//[ | |
65 | -// "float" => 'PRICE', | |
66 | -// "integer" => ['BOX' , 'ADD_BOX' ], | |
67 | -// "prefix" => 'ARTICLE' | |
68 | -//] | |
69 | 51 | \ No newline at end of file | ... | ... |
common/config/bootstrap.php
... | ... | @@ -6,3 +6,4 @@ Yii::setAlias('console', dirname(dirname(__DIR__)) . '/console'); |
6 | 6 | Yii::setAlias('auto_upload', dirname(dirname(__DIR__)) . '/backend/uploads/auto'); |
7 | 7 | Yii::setAlias('manual_upload', dirname(dirname(__DIR__)) . '/backend/uploads/manual'); |
8 | 8 | Yii::setAlias('temp_upload', dirname(dirname(__DIR__)) . '/backend/uploads/temp'); |
9 | +Yii::setAlias('storage', dirname(dirname(__DIR__)) . '/storage'); | ... | ... |
common/config/main.php
1 | 1 | <?php |
2 | +$mp_configuration = require( __DIR__ . '/../components/parsers/config.php'); | |
2 | 3 | return [ |
3 | 4 | 'language' => 'ru-RU', |
4 | 5 | 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', |
... | ... | @@ -13,6 +14,15 @@ return [ |
13 | 14 | 'module/<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>', |
14 | 15 | ] |
15 | 16 | ], |
17 | + 'multiparser'=>[ | |
18 | + | |
19 | + 'class' => 'yii\multiparser\YiiMultiparser', | |
20 | + 'configuration' => $mp_configuration, | |
21 | + 'as behavior' => [ | |
22 | + 'class' => 'backend\components\parsers\CustomConverter', | |
23 | + ], | |
24 | + | |
25 | + ], | |
16 | 26 | ], |
17 | 27 | |
18 | 28 | ]; | ... | ... |
console/controllers/ParserController.php
... | ... | @@ -12,60 +12,64 @@ class ParserController extends Controller{ |
12 | 12 | |
13 | 13 | public function actionParseCsv () |
14 | 14 | { |
15 | - Console::output('1'); | |
15 | + \Yii::info('Начало загрузки файлов прайсов csv','parser'); | |
16 | 16 | foreach (glob( \Yii::getAlias('@auto_upload') . '/*.csv' ) as $file_path) { |
17 | - $file_name = basename($file_path,".csv"); | |
18 | - Console::output('2'); | |
19 | - $importer_id = ImportersFiles::findOne(['id' => $file_name])->importer_id; | |
20 | - $keys = Importers::findOne( ['id' => $importer_id] )->keys; | |
21 | - | |
22 | - $config = ['record_id' => $file_name, | |
23 | - 'importer_id' => $importer_id, | |
24 | - 'parser_config' => ['keys' => $keys, | |
25 | - 'mode' => 'console'] | |
26 | - ]; | |
27 | - Console::output('3'); | |
28 | - if( $this->parseFileConsole( $file_path, $config ) ){ | |
29 | - Console::output('4'); | |
30 | - unlink( $file_path ); | |
31 | - if (isset( $arr_id_files[$file_path] ) ) { | |
32 | - unset( $arr_id_files[$file_path] ); | |
33 | - } | |
34 | - } | |
35 | - } | |
17 | + $file_name = basename( $file_path,".csv" ); | |
18 | + \Yii::info("Обработка файла - $file_path",'parser'); | |
19 | + $importer_id = ImportersFiles::findOne(['id' => $file_name])->importer_id; | |
20 | + $keys = Importers::findOne( ['id' => $importer_id] )->keys; | |
36 | 21 | |
22 | + $config = ['record_id' => $file_name, | |
23 | + 'importer_id' => $importer_id, | |
24 | + 'parser_config' => ['keys' => $keys, | |
25 | + 'mode' => 'console'] | |
26 | + ]; | |
27 | + if( $this->parseFileConsole( $file_path, $config ) ){ | |
28 | + unlink( \Yii::getAlias('@temp_upload') . '/' . $file_name . '.csv' ); | |
29 | + \Yii::info("Загрузка файла - $file_path успешно завершена",'parser'); | |
30 | + } else{ | |
31 | + \Yii::error( "Загрузка файла - $file_path завершена с ошибкой", 'parser' ); | |
32 | + } | |
33 | + //при любом завершении скрипта файл с очереди автозагрузки нужно удалить | |
34 | + unlink( \Yii::getAlias('@auto_upload') . '/' . $file_name . '.csv' ); | |
35 | + } | |
37 | 36 | |
38 | - //return $this->redirect('serverFiles'); | |
39 | 37 | } |
40 | 38 | |
41 | - public function actionParseXml () | |
42 | - { | |
43 | 39 | |
44 | - } | |
45 | 40 | protected function parseFileConsole( $file_path, $configuration ){ |
46 | 41 | |
47 | 42 | if( !file_exists( $file_path ) ) |
48 | - throw new ErrorException("$file_path does not exist!"); | |
43 | + throw new ErrorException("$file_path - файл не найден!"); | |
49 | 44 | |
50 | 45 | $parser_config = []; |
51 | 46 | if ( isset( $configuration['parser_config'] ) ) { |
52 | 47 | $parser_config = $configuration['parser_config']; |
53 | 48 | } |
54 | - | |
55 | 49 | $data = \Yii::$app->multiparser->parse( $file_path, $parser_config ); |
50 | + if (! $data) { | |
51 | + // @todo переделать, что бы ошибка автоматически останавливала сценарий | |
52 | + return false; | |
53 | + } | |
56 | 54 | |
57 | 55 | $writer = new PriceWriter(); |
58 | 56 | $writer->configuration = $configuration; |
59 | 57 | $writer->data = $data; |
60 | 58 | $writer->mode = 1; //console-режим |
59 | + | |
61 | 60 | if ( $writer->writeDataToDB() ){ |
62 | - Console::output('It is working'); | |
61 | + | |
63 | 62 | return true; |
64 | 63 | } |
65 | 64 | |
66 | 65 | return false; |
67 | 66 | } |
68 | 67 | |
68 | + public function actionParseXml () | |
69 | + { | |
70 | + | |
71 | + } | |
72 | + | |
69 | 73 | public function actionTest () |
70 | 74 | { |
71 | 75 | Console::output('It is working '); | ... | ... |
console/migrations/m130524_201442_init.php deleted
1 | -<?php | |
2 | - | |
3 | -use yii\db\Schema; | |
4 | -use yii\db\Migration; | |
5 | - | |
6 | -class m130524_201442_init extends Migration | |
7 | -{ | |
8 | - public function up() | |
9 | - { | |
10 | - $tableOptions = null; | |
11 | - if ($this->db->driverName === 'mysql') { | |
12 | - // http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci | |
13 | - $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB'; | |
14 | - } | |
15 | - | |
16 | - $this->createTable('{{%user}}', [ | |
17 | - 'id' => $this->primaryKey(), | |
18 | - 'username' => $this->string()->notNull()->unique(), | |
19 | - 'auth_key' => $this->string(32)->notNull(), | |
20 | - 'password_hash' => $this->string()->notNull(), | |
21 | - 'password_reset_token' => $this->string()->unique(), | |
22 | - 'email' => $this->string()->notNull()->unique(), | |
23 | - | |
24 | - 'status' => $this->smallInteger()->notNull()->defaultValue(10), | |
25 | - 'created_at' => $this->integer()->notNull(), | |
26 | - 'updated_at' => $this->integer()->notNull(), | |
27 | - ], $tableOptions); | |
28 | - } | |
29 | - | |
30 | - public function down() | |
31 | - { | |
32 | - $this->dropTable('{{%user}}'); | |
33 | - } | |
34 | -} |
console/migrations/m150818_125718_create_user_180815.php deleted
1 | -<?php | |
2 | - | |
3 | - | |
4 | -use yii\db\Schema; | |
5 | -use yii\db\Migration; | |
6 | - | |
7 | - | |
8 | -class m150818_125718_create_user_180815 extends Migration | |
9 | -{ | |
10 | - public function up() | |
11 | - { | |
12 | - | |
13 | - | |
14 | - $user_array = [ | |
15 | - 'username' => 'admin', | |
16 | - 'auth_key' => 'admin', | |
17 | - 'password_hash' => Yii::$app->security->generatePasswordHash('admin'), | |
18 | - 'password_reset_token' => 'admin', | |
19 | - 'email'=> 'admin@test.com', | |
20 | - 'status' => '10', | |
21 | - 'created_at'=>'000000', | |
22 | - 'updated_at' => '000000' | |
23 | - ]; | |
24 | - $this->insert('{{%user}}', $user_array); | |
25 | - } | |
26 | - | |
27 | - | |
28 | - | |
29 | - public function down() | |
30 | - { | |
31 | - $this->dropTable('{{%user}}'); | |
32 | - } | |
33 | - | |
34 | - /* | |
35 | - // Use safeUp/safeDown to run migration code within a transaction | |
36 | - public function safeUp() | |
37 | - { | |
38 | - } | |
39 | - | |
40 | - public function safeDown() | |
41 | - { | |
42 | - } | |
43 | - */ | |
44 | -} |
console/migrations/m150831_130250_addImporters.php deleted
1 | -<?php | |
2 | - | |
3 | -use yii\db\Schema; | |
4 | -use yii\db\Migration; | |
5 | - | |
6 | -class m150831_130250_addImporters extends Migration | |
7 | -{ | |
8 | - public function up() | |
9 | - { | |
10 | - $tableOptions = null; | |
11 | - if ($this->db->driverName === 'mysql') { | |
12 | - $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB'; | |
13 | - } | |
14 | - | |
15 | - $this->createTable('{{%importer}}', [ | |
16 | - 'id' => $this->primaryKey(6)->notNull() . ' AUTO_INCREMENT', | |
17 | - 'code' =>'varchar(254) NOT NULL', | |
18 | - 'name' => 'varchar(254) NOT NULL', | |
19 | - 'name_price' => 'varchar(254) NOT NULL', | |
20 | - 'currency_id' => 'int(3) unsigned NOT NULL', | |
21 | - 'delivery' => 'varchar(254) NOT NULL', | |
22 | - 'email' => 'varchar(254) NOT NULL', | |
23 | - 'info' => 'text NOT NULL', | |
24 | - 'active' => 'tinyint(1) unsigned NOT NULL DEFAULT 1', | |
25 | - 'PARSER_IS_ACTIVE' => 'tinyint(1) unsigned NOT NULL DEFAULT 0', | |
26 | - 'PARSER_COLUMN_COUNT' => 'int(6) unsigned DEFAULT NULL', | |
27 | - 'PARSER_FIELD_BRAND' => 'int(3) unsigned DEFAULT NULL', | |
28 | - 'PARSER_FIELD_ARTICLE' => 'int(3) unsigned DEFAULT NULL', | |
29 | - 'PARSER_FIELD_ARTICLE_PREFIX' => 'tinyint(1) unsigned NOT NULL DEFAULT 0', | |
30 | - 'PARSER_FIELD_PRICE' => 'int(3) unsigned DEFAULT NULL', | |
31 | - 'PARSER_FIELD_DESCR' =>'int(3) unsigned DEFAULT NULL', | |
32 | - 'PARSER_FIELD_BOX' => 'int(3) unsigned DEFAULT NULL', | |
33 | - 'PARSER_FIELD_ADD_BOX' => 'int(3) unsigned DEFAULT NULL', | |
34 | - 'PARSER_FIELD_GROUP_RG' => 'int(3) unsigned DEFAULT NULL', | |
35 | - 'PARSER_FIELD_SIGN' => 'varchar(1) NOT NULL', | |
36 | - 'PARSER_FIELD_MULTIPLIER' => 'float(8,2) unsigned DEFAULT NULL', | |
37 | - 'price_date_update' => 'varchar(15) NOT NULL' | |
38 | - | |
39 | - ], $tableOptions); | |
40 | - | |
41 | - $this->createIndex('code', '{{%importer}}', 'code', true); | |
42 | - $this->createIndex('name', '{{%importer}}', 'name', true); | |
43 | - $this->createIndex('active', '{{%importer}}', 'active', false); | |
44 | - } | |
45 | - | |
46 | - public function down() | |
47 | - { | |
48 | - $this->dropTable('{{%importer}}'); | |
49 | - | |
50 | - } | |
51 | - | |
52 | - /* | |
53 | - // Use safeUp/safeDown to run migration code within a transaction | |
54 | - public function safeUp() | |
55 | - { | |
56 | - } | |
57 | - | |
58 | - public function safeDown() | |
59 | - { | |
60 | - } | |
61 | - */ | |
62 | -} |
console/migrations/m150901_135806_addImportersFiles.php deleted
1 | -<?php | |
2 | - | |
3 | -use yii\db\Schema; | |
4 | -use yii\db\Migration; | |
5 | - | |
6 | -class m150901_135806_addImportersFiles extends Migration | |
7 | -{ | |
8 | - public function up() | |
9 | - { | |
10 | - $tableOptions = null; | |
11 | - if ($this->db->driverName === 'mysql') { | |
12 | - $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB'; | |
13 | - } | |
14 | - | |
15 | - $this->createTable('{{%importer_files}}', [ | |
16 | - 'id' => $this->primaryKey(10)->notNull() . ' AUTO_INCREMENT', | |
17 | - 'importer_id' => 'int(6) unsigned NOT NULL', | |
18 | - 'upload_time' => 'timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP', | |
19 | - 'time_start' => 'timestamp NULL DEFAULT NULL', | |
20 | - 'time_end' => 'timestamp NULL DEFAULT NULL', | |
21 | - ], $tableOptions); | |
22 | - | |
23 | - | |
24 | - $this->createIndex('importer_id', '{{%importer_files}}', 'importer_id, time_start', false); | |
25 | - } | |
26 | - | |
27 | - public function down() | |
28 | - { | |
29 | - $this->dropTable('{{%importer_files}}'); | |
30 | - } | |
31 | - | |
32 | - /* | |
33 | - // Use safeUp/safeDown to run migration code within a transaction | |
34 | - public function safeUp() | |
35 | - { | |
36 | - } | |
37 | - | |
38 | - public function safeDown() | |
39 | - { | |
40 | - } | |
41 | - */ | |
42 | -} |
console/migrations/m150901_141850_addImportersPrefix.php deleted
1 | -<?php | |
2 | - | |
3 | -use yii\db\Schema; | |
4 | -use yii\db\Migration; | |
5 | - | |
6 | -class m150901_141850_addImportersPrefix extends Migration | |
7 | -{ | |
8 | - public function up() | |
9 | - { | |
10 | - $tableOptions = null; | |
11 | - if ($this->db->driverName === 'mysql') { | |
12 | - $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB'; | |
13 | - } | |
14 | - | |
15 | - $this->createTable('{{%importer_prefix}}', [ | |
16 | - 'id' => $this->primaryKey(10)->notNull() . ' AUTO_INCREMENT', | |
17 | - 'importer_id' => 'int(6) unsigned NOT NULL', | |
18 | - 'brand' => 'varchar(100) NOT NULL', | |
19 | - 'prefix' => 'varchar(50) NOT NULL', | |
20 | - 'timestamp' => 'timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP', | |
21 | - ], $tableOptions); | |
22 | - | |
23 | - $this->createIndex('importer_id', '{{%importer_prefix}}', 'importer_id, brand, prefix', true); | |
24 | - } | |
25 | - | |
26 | - public function down() | |
27 | - { | |
28 | - $this->dropTable('{{%importer_prefix}}'); | |
29 | - } | |
30 | - | |
31 | - /* | |
32 | - // Use safeUp/safeDown to run migration code within a transaction | |
33 | - public function safeUp() | |
34 | - { | |
35 | - } | |
36 | - | |
37 | - public function safeDown() | |
38 | - { | |
39 | - } | |
40 | - */ | |
41 | -} |
console/migrations/m150915_125129_addDetails.php deleted
1 | -<?php | |
2 | - | |
3 | -use yii\db\Schema; | |
4 | -use yii\db\Migration; | |
5 | - | |
6 | -class m150915_125129_addDetails extends Migration | |
7 | -{ | |
8 | - public function up() | |
9 | - { | |
10 | - $this->execute('CREATE TABLE `details` ( | |
11 | - `ID` int(10) unsigned NOT NULL AUTO_INCREMENT, | |
12 | - `IMPORT_ID` int(6) unsigned NOT NULL, | |
13 | - `BRAND` varchar(100) NOT NULL, | |
14 | - `ARTICLE` varchar(100) NOT NULL, | |
15 | - `FULL_ARTICLE` varchar(150) NOT NULL, | |
16 | - `PRICE` float(15,2) unsigned NOT NULL, | |
17 | - `DESCR` varchar(200) NOT NULL, | |
18 | - `BOX` int(6) unsigned NOT NULL, | |
19 | - `ADD_BOX` int(6) unsigned NOT NULL DEFAULT 0, | |
20 | - `GROUP` varchar(200) NOT NULL DEFAULT \'\', | |
21 | - `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | |
22 | - PRIMARY KEY (`ARTICLE`,`BRAND`,`IMPORT_ID`), | |
23 | - UNIQUE KEY `ID_delete` (`ID`), | |
24 | - KEY `timestamp` (`timestamp`), | |
25 | - KEY `ARTICLE` (`ARTICLE`,`BRAND`,`BOX`), | |
26 | - KEY `BRAND` (`BRAND`,`ARTICLE`), | |
27 | - KEY `ARTICLE_2` (`ARTICLE`,`BRAND`,`ADD_BOX`), | |
28 | - KEY `IMPORT_ID` (`IMPORT_ID`,`ARTICLE`), | |
29 | - KEY `IMPORT_ID_2` (`IMPORT_ID`,`timestamp`) | |
30 | - ) ENGINE=InnoDB DEFAULT CHARSET=utf8'); | |
31 | - | |
32 | - } | |
33 | - | |
34 | - public function down() | |
35 | - { | |
36 | - $this->dropTable('{{%details}}'); | |
37 | - | |
38 | - } | |
39 | - | |
40 | -} |
console/migrations/m150922_094313_change_key_ImportFiles.php deleted
1 | -<?php | |
2 | - | |
3 | -use yii\db\Schema; | |
4 | -use yii\db\Migration; | |
5 | - | |
6 | -class m150922_094313_change_key_ImportFiles extends Migration | |
7 | -{ | |
8 | - //@todo вероятно что эта миграция ненужна - посмотреть ближе к концу проекта на ключи которые используются - остальные удалить. | |
9 | - public function up() | |
10 | - { | |
11 | - $this->dropIndex('importer_id', '{{%importer_files}}'); | |
12 | - $this->createIndex('importer_id', '{{%importer_files}}', 'importer_id, upload_time', false); | |
13 | - } | |
14 | - | |
15 | - public function down() | |
16 | - { | |
17 | - $this->dropIndex('importer_id', '{{%importer_files}}'); | |
18 | - $this->createIndex('importer_id', '{{%importer_files}}', 'importer_id, time_start', false); | |
19 | - } | |
20 | - | |
21 | - | |
22 | -} |
console/migrations/m150922_144040_change_Importer_dataPrice.php deleted
1 | -<?php | |
2 | - | |
3 | -use yii\db\Schema; | |
4 | -use yii\db\Migration; | |
5 | - | |
6 | -class m150922_144040_change_Importer_dataPrice extends Migration | |
7 | -{ | |
8 | - public function up() | |
9 | - { | |
10 | - $this->alterColumn('{{%importer}}','price_date_update','TIMESTAMP' ); | |
11 | - $this->createIndex('price_date', '{{%importer}}', 'price_date_update', false); | |
12 | - } | |
13 | - | |
14 | - public function down() | |
15 | - { | |
16 | - $this->alterColumn('{{%importer}}','price_date','varchar(15)' ); | |
17 | - $this->dropIndex('price_date', '{{%importer}}'); | |
18 | - } | |
19 | - | |
20 | - | |
21 | -} |
31.9 KB
vendor/yiisoft/multiparser/Converter.php
... | ... | @@ -51,7 +51,7 @@ class Converter extends Behavior |
51 | 51 | |
52 | 52 | public static function convertToString($value) |
53 | 53 | { |
54 | - $res = ''; | |
54 | + $res = $value; | |
55 | 55 | if (is_array($value)) { |
56 | 56 | |
57 | 57 | $res = Encoder::encodeArray($value); |
... | ... | @@ -98,8 +98,6 @@ class Converter extends Behavior |
98 | 98 | */ |
99 | 99 | public static function convertByConfiguration( $arr, $configuration ) |
100 | 100 | { |
101 | - $result = $arr; | |
102 | - // \common\components\CustomVarDamp::dumpAndDie( $result ); | |
103 | 101 | $hasKey = isset( $configuration['hasKey'] ); |
104 | 102 | foreach ( $configuration['configuration'] as $key => $value ) { |
105 | 103 | if ( $hasKey ){ |
... | ... | @@ -108,14 +106,14 @@ class Converter extends Behavior |
108 | 106 | //если пустой массив то конвертируем всю строку |
109 | 107 | if (count( $value ) === 0 ){ |
110 | 108 | |
111 | - $result = self::$key( $arr ); | |
109 | + $arr = self::$key( $arr ); | |
112 | 110 | continue; |
113 | 111 | } |
114 | 112 | // иначе конвертируем каждую ячейку в отдельности |
115 | 113 | foreach ($value as $sub_value) { |
116 | 114 | if (isset($arr[$sub_value])) { |
117 | 115 | // конвертируем только те ячейки которые сопоставлены в прочитанном массиве с колонками в конфигурационном файле |
118 | - $result[$sub_value] = self::$key( $arr[$sub_value] ); | |
116 | + $arr[$sub_value] = self::$key( $arr[$sub_value] ); | |
119 | 117 | } |
120 | 118 | |
121 | 119 | } |
... | ... | @@ -123,19 +121,20 @@ class Converter extends Behavior |
123 | 121 | |
124 | 122 | if (isset($arr[$value])) { |
125 | 123 | // конвертируем только те ячейки которые сопоставлены в прочитанном массиве с колонками в конфигурационном файле |
126 | - $result[$value] = self::$key( $arr[$value] ); | |
124 | + $arr[$value] = self::$key( $arr[$value] ); | |
125 | + // CustomVarDamp::dump($result); | |
127 | 126 | } |
128 | 127 | |
129 | 128 | } |
130 | 129 | |
131 | 130 | } else { |
132 | 131 | // нет заголовка - мы можем конвертировать только строку в целом |
133 | - $result = self::$key( $arr ); | |
132 | + $arr = self::$key( $arr ); | |
134 | 133 | } |
135 | 134 | |
136 | 135 | } |
137 | 136 | |
138 | - return $result; | |
137 | + return $arr; | |
139 | 138 | } |
140 | 139 | |
141 | 140 | ... | ... |