From d4d55680aebacda5862bd9dc5c0a5bb26c065568 Mon Sep 17 00:00:00 2001 From: ste87 Date: Sun, 19 Apr 2026 23:42:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20tickets/TicketMessageCreat?= =?UTF-8?q?edListener.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tickets/TicketMessageCreatedListener.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tickets/TicketMessageCreatedListener.php b/tickets/TicketMessageCreatedListener.php index 9ad1323..c286518 100644 --- a/tickets/TicketMessageCreatedListener.php +++ b/tickets/TicketMessageCreatedListener.php @@ -4,6 +4,7 @@ namespace App\Listeners; use App\Events\TicketMessage\Created; use App\Helpers\NotificationHelper; +use App\Models\User; class TicketMessageCreatedListener { @@ -20,6 +21,26 @@ class TicketMessageCreatedListener } else { // Update ticket status $event->ticketMessage->ticket->update(['status' => 'open']); + // Get all users with ticket viewing permission + $admins = User::whereHas('role', function ($query) { + $query->whereJsonContains('permissions', 'admin.tickets.viewAny') + ->orWhereJsonContains('permissions', '*'); + })->get(); + + // Send notification to each admin + foreach ($admins as $admin) { + NotificationHelper::sendSystemEmailNotification( + '[Ticket #' . $event->ticketMessage->ticket->id . '] New Reply from Customer', + "The customer has replied to the ticket.\n\n" . + "Ticket ID: #" . $event->ticketMessage->ticket->id . "\n" . + "Subject: " . $event->ticketMessage->ticket->subject . "\n" . + "User: " . $event->ticketMessage->ticket->user->name . " (" . $event->ticketMessage->ticket->user->email . ")\n" . + "Message:\n" . $event->ticketMessage->message . "\n" . + "Replied at: " . $event->ticketMessage->created_at->format('Y-m-d H:i:s'), + [], + $admin->email + ); + } } } }