Increase speed of processing the prices and products. Because this is getting out of hand.
This commit was merged in pull request #33.
This commit is contained in:
@@ -24,11 +24,10 @@ class Migrate extends Command
|
||||
|
||||
public function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
if (true === $input->hasOption(self::RECREATE_OPTION)) {
|
||||
if ($input->getOption(self::RECREATE_OPTION)) {
|
||||
unlink(__DIR__ . '/../../database.sqlite');
|
||||
//sleep(5);
|
||||
touch(__DIR__ . '/../../database.sqlite');
|
||||
}
|
||||
touch(__DIR__ . '/../../database.sqlite');
|
||||
$capsule = new Capsule;
|
||||
$capsule->addConnection([
|
||||
'driver' => 'sqlite',
|
||||
@@ -39,6 +38,7 @@ class Migrate extends Command
|
||||
$this->createProductsTable();
|
||||
$this->createPricesTable();
|
||||
$this->createStocksTable();
|
||||
$this->updateProductsTableAddPrices();
|
||||
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
@@ -94,4 +94,31 @@ class Migrate extends Command
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function updateProductsTableAddPrices(): void
|
||||
{
|
||||
if (!Capsule::schema()->hasColumn('products', 'priceCurrent')) {
|
||||
Capsule::schema()->table('products', function (Blueprint $table) {
|
||||
$table->float('priceCurrent')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
if (!Capsule::schema()->hasColumn('products', 'priceLowest')) {
|
||||
Capsule::schema()->table('products', function (Blueprint $table) {
|
||||
$table->float('priceLowest')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
if (!Capsule::schema()->hasColumn('products', 'productStandardPrice')) {
|
||||
Capsule::schema()->table('products', function (Blueprint $table) {
|
||||
$table->float('productStandardPrice')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
if (!Capsule::schema()->hasColumn('products', 'lowestProductPrice30Days')) {
|
||||
Capsule::schema()->table('products', function (Blueprint $table) {
|
||||
$table->float('lowestProductPrice30Days')->default(0);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ class ScrapeWebsite extends Command
|
||||
|
||||
public function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$output->writeln('Scrape products');
|
||||
$progress = new ProgressBar($output);
|
||||
$progress->start();
|
||||
$products = $this->getProducts();
|
||||
@@ -42,8 +43,25 @@ class ScrapeWebsite extends Command
|
||||
$progress->advance();
|
||||
}
|
||||
$progress->finish();
|
||||
$output->writeln('Scrape products - DONE');
|
||||
$output->writeln('');
|
||||
$output->writeln('DONE');
|
||||
|
||||
$output->writeln('Update prices');
|
||||
$products = Product::all();
|
||||
$progress->setMaxSteps(count($products));
|
||||
$progress->start();
|
||||
foreach($products as $product) {
|
||||
$product->priceCurrent = $product->newestPrice->price;
|
||||
$product->productStandardPrice = $product->newestPrice->productStandardPrice;
|
||||
$product->lowestProductPrice30Days = $product->newestPrice->lowestProductPrice30Days;
|
||||
$product->priceLowest = $product->lowestPrice->price;
|
||||
$product->save(['timestamps' => false]);
|
||||
$progress->advance();
|
||||
}
|
||||
$progress->finish();
|
||||
$output->writeln('');
|
||||
$output->writeln('Update prices - DONE');
|
||||
$output->writeln('COMMAND - DONE');
|
||||
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user