From d2fc561c03818c09adf7cd066021ace377b6e7de Mon Sep 17 00:00:00 2001 From: vasya Date: Sun, 5 Apr 2026 20:33:55 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D1=8B,=20?= =?UTF-8?q?=D0=BE=D1=82=D0=B2=D0=B5=D1=87=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B0=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D1=83?= =?UTF-8?q?=20=D0=BF=D0=B8=D1=81=D0=B5=D0=BC=20-=20=D0=BB=D0=B8=D0=B1?= =?UTF-8?q?=D0=BE=20=D0=BD=D0=B0=D0=BF=D1=80=D1=8F=D0=BC=D1=83=D1=8E,=20?= =?UTF-8?q?=D0=BB=D0=B8=D0=B1=D0=BE=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BB=D0=B8=D1=87=D0=BD=D1=8B=D1=85=20=D0=B4=D0=B6=D0=BE?= =?UTF-8?q?=D0=B1=20=D0=B8=D0=BB=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=20=D1=80=D0=B0=D1=81=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8E=20(=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../App/Console/SendOrdersToTaxiCommand.php | 90 +++++++++++++++++++ Modules/Taxi/App/Jobs/TaxiMailJob.php | 40 +++++++++ Modules/Taxi/App/Mail/BaseTaxiMail.php | 32 +++++++ Modules/Taxi/App/Mail/NewOrderMail.php | 39 ++++++++ .../Taxi/App/Providers/TaxiMailerProvider.php | 28 ++++++ .../App/Providers/TaxiScheduleProvider.php | 31 +++++++ .../Taxi/App/Services/TaxiMailerService.php | 27 ++++++ app/Console/Kernel.php | 40 +++++++++ 8 files changed, 327 insertions(+) create mode 100644 Modules/Taxi/App/Console/SendOrdersToTaxiCommand.php create mode 100644 Modules/Taxi/App/Jobs/TaxiMailJob.php create mode 100644 Modules/Taxi/App/Mail/BaseTaxiMail.php create mode 100644 Modules/Taxi/App/Mail/NewOrderMail.php create mode 100644 Modules/Taxi/App/Providers/TaxiMailerProvider.php create mode 100644 Modules/Taxi/App/Providers/TaxiScheduleProvider.php create mode 100644 Modules/Taxi/App/Services/TaxiMailerService.php create mode 100644 app/Console/Kernel.php diff --git a/Modules/Taxi/App/Console/SendOrdersToTaxiCommand.php b/Modules/Taxi/App/Console/SendOrdersToTaxiCommand.php new file mode 100644 index 0000000..072024a --- /dev/null +++ b/Modules/Taxi/App/Console/SendOrdersToTaxiCommand.php @@ -0,0 +1,90 @@ +executeCommand(function () { + $todayOrders = TaxiMain::where('cancel_rqst', 0) + ->where('taxi_date', (new DateTime())->format('Y-m-d')) + ->get() + ->toArray(); + + if (!$todayOrders) { + Mail::send(new Mailer( + new BaseMailerObj( + + ) + )); + echo '
'; var_dump('da'); echo'
'; + } else { + echo '
'; var_dump('net'); echo'
'; + } + + throw new Error('Ошипка!'); + }, 'еще инва'); + + // try { + // throw new Error('Ошипка!'); + // } catch (\Throwable $th) { + // \Log::channel('schedule_err')->error($th->getFile() . ": " . $th->getMessage() . " Line: " . $th->getLine()); + // } + + //$this->info('Daily report generated at ' . now()); + + return 0; + } + + /** + * Get the console command arguments. + */ + protected function getArguments(): array + { + return [ + ['example', InputArgument::REQUIRED, 'An example argument.'], + ]; + } + + /** + * Get the console command options. + */ + protected function getOptions(): array + { + return [ + ['example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null], + ]; + } +} diff --git a/Modules/Taxi/App/Jobs/TaxiMailJob.php b/Modules/Taxi/App/Jobs/TaxiMailJob.php new file mode 100644 index 0000000..a91a9ca --- /dev/null +++ b/Modules/Taxi/App/Jobs/TaxiMailJob.php @@ -0,0 +1,40 @@ +jobData + )); + } +} diff --git a/Modules/Taxi/App/Mail/BaseTaxiMail.php b/Modules/Taxi/App/Mail/BaseTaxiMail.php new file mode 100644 index 0000000..d3a2c43 --- /dev/null +++ b/Modules/Taxi/App/Mail/BaseTaxiMail.php @@ -0,0 +1,32 @@ +orderData->emp_login], + "Создана заявка на такси", + "Для вас создана заявка на такси № {$this->orderId}: + ", + config('taxi.name_ru'), + ); + } +} diff --git a/Modules/Taxi/App/Providers/TaxiMailerProvider.php b/Modules/Taxi/App/Providers/TaxiMailerProvider.php new file mode 100644 index 0000000..1337f75 --- /dev/null +++ b/Modules/Taxi/App/Providers/TaxiMailerProvider.php @@ -0,0 +1,28 @@ +app->bind(TaxiMailerService::class, function ($app) { + return new TaxiMailerService(); + }); + } + + /** + * Get the services provided by the provider. + */ + public function provides(): array + { + return []; + } +} diff --git a/Modules/Taxi/App/Providers/TaxiScheduleProvider.php b/Modules/Taxi/App/Providers/TaxiScheduleProvider.php new file mode 100644 index 0000000..1eaf999 --- /dev/null +++ b/Modules/Taxi/App/Providers/TaxiScheduleProvider.php @@ -0,0 +1,31 @@ +app->runningInConsole()) { + $this->commands([ + SendOrdersToTaxiCommand::class, // ✅ Теперь Laravel знает о команде + ]); + } + } + + /** + * Get the services provided by the provider. + */ + public function provides(): array + { + return []; + } +} diff --git a/Modules/Taxi/App/Services/TaxiMailerService.php b/Modules/Taxi/App/Services/TaxiMailerService.php new file mode 100644 index 0000000..0ad96f3 --- /dev/null +++ b/Modules/Taxi/App/Services/TaxiMailerService.php @@ -0,0 +1,27 @@ +prepareDataForMail())->onQueue('emails')->delay(5); + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..0ae4c30 --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,40 @@ +command('inspire')->hourly(); + //activity()->log('Look mum, I logged something'); + #Гаврилов + //ПРОВЕРИТЬ, РАБОТАЕТ? + // $schedule->command('sanctum:prune-expired --hours=24') + // ->daily(); + //->dailyAt('21:03'); + // activity() + // ->byAnonymous() + // ->inLog('Shedule') + // ->event('clear_old_Sanctum_tokens'); + + //попытка поработать с командами по расписанию. Не успел протестить. В частности, в этом скрипте планируется в определенное время инициировать отправку всех заявок на такси + $schedule->command('taxi:send-today-orders-mail')->dailyAt('08:00'); + } + + /** + * Register the commands for the application. + */ + protected function commands(): void + { + $this->load(__DIR__ . '/Commands'); + + require base_path('routes/console.php'); + } +}