From 295e6454b1d7eca83ebe8db42bc18d2701ed6ce6 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Tue, 30 Jan 2024 00:34:39 +0800 Subject: [PATCH] add cron job command to send permits reminder --- .../Notifications/PermitsReminderEmail.php | 36 +++++++++++ .../Commands/SendPermitsReminderEmails.php | 60 +++++++++++++++++++ .../reminder/permits_reminder.blade.php | 12 ++++ 3 files changed, 108 insertions(+) create mode 100644 app/Classes/Notifications/PermitsReminderEmail.php create mode 100644 app/Console/Commands/SendPermitsReminderEmails.php create mode 100644 resources/views/emails/reminder/permits_reminder.blade.php diff --git a/app/Classes/Notifications/PermitsReminderEmail.php b/app/Classes/Notifications/PermitsReminderEmail.php new file mode 100644 index 00000000..5524c949 --- /dev/null +++ b/app/Classes/Notifications/PermitsReminderEmail.php @@ -0,0 +1,36 @@ +user = $user; + $this->reminders = $reminders; + } + + public function toMail() + { + return (new MailMessage) + ->subject('Permits Renew Remidner Email') + ->view('emails.reminder.permits_reminder', ['user' => $this->user, 'reminders' => $this->reminders]); + } + + +} \ No newline at end of file diff --git a/app/Console/Commands/SendPermitsReminderEmails.php b/app/Console/Commands/SendPermitsReminderEmails.php new file mode 100644 index 00000000..28db7889 --- /dev/null +++ b/app/Console/Commands/SendPermitsReminderEmails.php @@ -0,0 +1,60 @@ +subDays(3)->startOfDay(); + $endRange = $now->copy()->addDays(6)->endOfDay(); + + $reminders = PermitsReminder::whereDate('reminder_date', '>=', $startRange) + ->whereDate('reminder_date', '<=', $endRange) + ->pluck('model'); + + $this->info(json_encode($reminders)); + + $users = User::whereIn('email', ['edmond.wuiming2021@gmail.com'])->get(); + + foreach ($users as $user) { + $this->info('Reminder email sent to ' . $user->email); + $user->notify(new PermitsReminderEmail($user, $reminders)); + } + } +} diff --git a/resources/views/emails/reminder/permits_reminder.blade.php b/resources/views/emails/reminder/permits_reminder.blade.php new file mode 100644 index 00000000..7221afa1 --- /dev/null +++ b/resources/views/emails/reminder/permits_reminder.blade.php @@ -0,0 +1,12 @@ +@extends('emails.layout.base') + +@section('content') +

Hello, {{ $user->first_name.' '.$user->last_name }}

+

The permits listed below either expiring within the period of the next 3 days or have already expired 3 days ago.

+ + +@endsection \ No newline at end of file