Viewing File: /home/ubuntu/shop-website-base/app/Jobs/OrderCancelJob.php

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

use Log;

use DB, Setting, Validator, Exception, Enveditor, File;

use App\Models\Admin,App\Models\User;

use App\Models\Order,App\Models\OrderProduct,App\Models\Product;


class OrderCancelJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $data;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public $tries = 2;


    public function __construct($data)
    {
        //
        $this->data = $data;

    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
        try {

        $order = $this->data;

        $user = User::find($order->user_id);

        $message = tr('order_cancel_success');

        $email_data['subject'] = tr('order_cancel').' '.Setting::get('site_name');

        $email_data['page'] = "emails.users.order-status";

        $email_data['data'] = $user;

        $email_data['email'] = $user->email;

        $email_data['name'] = $user->name;

        $email_data['order'] = Order::find($order->id) ?? '';

        $email_data['order_products'] = OrderProduct::where('order_id',$order->id)->get() ?? [];

        $email_data['message'] = tr('user_order_cancel_message',$user->name ?? '');

        dispatch(new \App\Jobs\SendEmailJob($email_data));

        $admin = Admin::find(1);

        Log::info("admin ".print_r($admin, true));

        $admin_email_data['subject'] = $message.' '.Setting::get('site_name');

        $admin_email_data['page'] = "emails.admin.order-status";

        $admin_email_data['data'] = $admin;

        $admin_email_data['email'] = Setting::get('admin_email_id') ?: $admin->email;

        $admin_email_data['name'] = $admin->name;

        $admin_email_data['message'] = tr('admin_order_confirm_message',$user->name ?? '');

        Log::info("admin email".print_r($admin_email_data['email'], true));


        dispatch(new \App\Jobs\SendEmailJob($admin_email_data));

        } catch(Exception $e) {

            Log::info("Error ".print_r($e->getMessage(), true));

        }
    }
}
Back to Directory File Manager