f0dbd829
Mihail
add PriceWriter a...
|
1
|
<?php
|
db543d22
Mihail
temp commit - wor...
|
2
3
|
namespace console\controllers;
|
f0dbd829
Mihail
add PriceWriter a...
|
4
|
use yii\console\Controller;
|
1fe29bbe
Mihail
fixed parser and ...
|
5
6
7
|
use yii\helpers\Console;
use common\components\PriceWriter;
use backend\models\ImportersFiles;
|
ef41533d
Mihail
temp commit - wor...
|
8
9
|
use backend\models\Importers;
use yii\base\ErrorException;
|
f0dbd829
Mihail
add PriceWriter a...
|
10
11
|
class ParserController extends Controller{
|
ef41533d
Mihail
temp commit - wor...
|
12
13
|
public function actionParseCsv ()
|
f0dbd829
Mihail
add PriceWriter a...
|
14
|
{
|
ea4ecf3d
Mihail
console csv parsing
|
15
|
\Yii::info('Начало загрузки файлов прайсов csv','parser');
|
ef41533d
Mihail
temp commit - wor...
|
16
|
foreach (glob( \Yii::getAlias('@auto_upload') . '/*.csv' ) as $file_path) {
|
ea4ecf3d
Mihail
console csv parsing
|
17
18
19
20
|
$file_name = basename( $file_path,".csv" );
\Yii::info("Обработка файла - $file_path",'parser');
$importer_id = ImportersFiles::findOne(['id' => $file_name])->importer_id;
$keys = Importers::findOne( ['id' => $importer_id] )->keys;
|
ef41533d
Mihail
temp commit - wor...
|
21
|
|
ea4ecf3d
Mihail
console csv parsing
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
$config = ['record_id' => $file_name,
'importer_id' => $importer_id,
'parser_config' => ['keys' => $keys,
'mode' => 'console']
];
if( $this->parseFileConsole( $file_path, $config ) ){
unlink( \Yii::getAlias('@temp_upload') . '/' . $file_name . '.csv' );
\Yii::info("Загрузка файла - $file_path успешно завершена",'parser');
} else{
\Yii::error( "Загрузка файла - $file_path завершена с ошибкой", 'parser' );
}
//при любом завершении скрипта файл с очереди автозагрузки нужно удалить
unlink( \Yii::getAlias('@auto_upload') . '/' . $file_name . '.csv' );
}
|
ef41533d
Mihail
temp commit - wor...
|
36
|
|
f0dbd829
Mihail
add PriceWriter a...
|
37
|
}
|
ef41533d
Mihail
temp commit - wor...
|
38
|
|
f0dbd829
Mihail
add PriceWriter a...
|
39
|
|
1fe29bbe
Mihail
fixed parser and ...
|
40
|
protected function parseFileConsole( $file_path, $configuration ){
|
ef41533d
Mihail
temp commit - wor...
|
41
42
|
if( !file_exists( $file_path ) )
|
ea4ecf3d
Mihail
console csv parsing
|
43
|
throw new ErrorException("$file_path - файл не найден!");
|
ef41533d
Mihail
temp commit - wor...
|
44
|
|
1fe29bbe
Mihail
fixed parser and ...
|
45
46
47
48
|
$parser_config = [];
if ( isset( $configuration['parser_config'] ) ) {
$parser_config = $configuration['parser_config'];
}
|
ef41533d
Mihail
temp commit - wor...
|
49
|
$data = \Yii::$app->multiparser->parse( $file_path, $parser_config );
|
ea4ecf3d
Mihail
console csv parsing
|
50
51
52
53
|
if (! $data) {
// @todo переделать, что бы ошибка автоматически останавливала сценарий
return false;
}
|
f0dbd829
Mihail
add PriceWriter a...
|
54
|
|
1fe29bbe
Mihail
fixed parser and ...
|
55
56
57
58
|
$writer = new PriceWriter();
$writer->configuration = $configuration;
$writer->data = $data;
$writer->mode = 1; //console-режим
|
ea4ecf3d
Mihail
console csv parsing
|
59
|
|
1fe29bbe
Mihail
fixed parser and ...
|
60
|
if ( $writer->writeDataToDB() ){
|
ea4ecf3d
Mihail
console csv parsing
|
61
|
|
1fe29bbe
Mihail
fixed parser and ...
|
62
63
|
return true;
}
|
f0dbd829
Mihail
add PriceWriter a...
|
64
|
|
1fe29bbe
Mihail
fixed parser and ...
|
65
|
return false;
|
f0dbd829
Mihail
add PriceWriter a...
|
66
|
}
|
db543d22
Mihail
temp commit - wor...
|
67
|
|
ea4ecf3d
Mihail
console csv parsing
|
68
69
|
public function actionParseXml ()
{
|
99ab22f3
Mihail
fixed convert to ...
|
70
71
72
73
|
\Yii::info('Начало загрузки файлов прайсов xml','parser');
foreach (glob( \Yii::getAlias('@auto_upload') . '/*.xml' ) as $file_path) {
$file_name = basename( $file_path,".xml" );
\Yii::info("Обработка файла - $file_path",'parser');
|
ea4ecf3d
Mihail
console csv parsing
|
74
|
|
99ab22f3
Mihail
fixed convert to ...
|
75
76
77
78
79
80
81
82
83
84
85
86
|
$config = ['record_id' => $file_name,
'importer_id' => 1,
'parser_config' => [
'mode' => 'console']
];
if( $this->parseFileConsole( $file_path, $config ) ){
unlink( \Yii::getAlias('@auto_upload') . '/' . $file_name . '.xml' );
\Yii::info("Загрузка файла - $file_path успешно завершена",'parser');
} else{
\Yii::error( "Загрузка файла - $file_path завершена с ошибкой", 'parser' );
}
}
|
ea4ecf3d
Mihail
console csv parsing
|
87
88
|
}
|
db543d22
Mihail
temp commit - wor...
|
89
90
|
public function actionTest ()
{
|
ef41533d
Mihail
temp commit - wor...
|
91
92
|
Console::output('It is working ');
\Yii::info('2','parser');
|
db543d22
Mihail
temp commit - wor...
|
93
94
|
}
|
f0dbd829
Mihail
add PriceWriter a...
|
95
|
}
|