Как добавить трекер времени в тикет, который отправляет уведомления агентам, когда тикет просрочен в PHP - PullRequest
0 голосов
/ 29 августа 2018

Вот код создания заявки;

 public static function inbox(){
        $messages = LaravelGmail::message()->unread()->preload()->all();


        foreach ( $messages as $message ) {
        $subject = $message->getSubject();
        $body = $message->getPlainTextBody();
        $fromname= $message->getFromName();
        $fromemail= $message->getFromEmail();

        $mail =$message ->markAsRead();



        $ticketit = new Ticketit;
        $ticketit->subject= $subject;
        $ticketit->content= $body;
        $ticketit->status_id= '1';
        $ticketit->priority_id= '2';
        $ticketit->user_id= '1';
        $ticketit->agent_id= '1';
        $ticketit->category_id= '1';


        $ticketit->save();



        $mail= $message->to($fromemail)->view('mail.reply', ['fromname' => $fromname,'ticket_id' => $ticketit->id] )->reply();

Как добавить трекер времени в заявку, которая отправляет уведомления агентам, когда билет просрочен в PHP?

1 Ответ

0 голосов
/ 29 августа 2018

Вам понадобится какой-то идентификатор времени в вашем билете, который может быть в форме даты или отметки времени. Если вы используете схемы Laravel по умолчанию, то у вас уже будет подобное поле с именем created_at.

Тогда вам придется запланировать задачу. Например, вы можете создать задачу, которая будет запускаться каждый час и проверять, не просрочен ли билет, а затем отправлять сообщения по электронной почте доступным агентам или уведомлять их в вашем приложении.

Как отмечает @ArtisticPhoenix, вам понадобится какое-то отслеживание того, было ли уже отправлено уведомление, или оно будет уведомлять агентов при каждом запуске запланированной задачи.

Пример кода - (не проверено)

Этот код входит в функцию schedule в App\Console\Kernel

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        $tickets = Ticketit::where('created_at', '<', Carbon::now()->subDays(7))->where('is_notified', false)->get();

        foreach ($tickets as $ticket) {
            //send mail here
        }
    })->hourly();
}

Вы можете улучшить этот код, добавив задание в очереди

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...