芝麻web文件管理V1.00
编辑当前文件:/home/digitalh/lavishbdlifestyle.com/app/Utility/NotificationUtility.php
id; $userIds = array($order->seller_id); if($order->user->email != null){ array_push($userIds, $order->user_id); } if ($order->seller_id != $adminId) { array_push($userIds, $adminId); } $users = User::findMany($userIds); foreach($users as $user){ $emailIdentifier = 'order_placed_email_to_'.$user->user_type; $emailTemplate = EmailTemplate::whereIdentifier($emailIdentifier)->first(); if($emailTemplate != null && $emailTemplate->status == 1){ $emailSubject = $emailTemplate->subject; $emailSubject = str_replace('[[order_code]]', $order->code, $emailSubject); $array['view'] = 'emails.invoice'; $array['subject'] = $emailSubject; $array['order'] = $order; if($emailTemplate->status == 1){ try { Mail::to($user->email)->queue(new InvoiceEmailManager($array)); } catch (\Exception $e) {} } } } if (addon_is_activated('otp_system') && SmsTemplate::where('identifier', 'order_placement')->first()->status == 1) { try { $otpController = new OTPVerificationController; $otpController->send_order_code($order); } catch (\Exception $e) { } } //sends Notifications to user self::sendNotification($order, 'placed'); if ($request !=null && get_setting('google_firebase') == 1 && $order->user->device_token != null) { $request->device_token = $order->user->device_token; $request->title = "Order placed !"; $request->text = "An order {$order->code} has been placed"; $request->type = "order"; $request->id = $order->id; $request->user_id = $order->user->id; self::sendFirebaseNotification($request); } } public static function sendNotification($order, $order_status) { $adminId = get_admin()->id; $userIds = array($order->user->id, $order->seller_id); if ($order->seller_id != $adminId) { array_push($userIds, $adminId); } $users = User::findMany($userIds); $order_notification = array(); $order_notification['order_id'] = $order->id; $order_notification['order_code'] = $order->code; $order_notification['user_id'] = $order->user_id; $order_notification['seller_id'] = $order->seller_id; $order_notification['status'] = $order_status; foreach($users as $user){ $notificationType = get_notification_type('order_'.$order_status.'_'.$user->user_type, 'type'); if($notificationType != null && $notificationType->status == 1){ $order_notification['notification_type_id'] = $notificationType->id; Notification::send($user, new OrderNotification($order_notification)); } } } public static function sendFirebaseNotification($req) { $url = 'https://fcm.googleapis.com/fcm/send'; $fields = array ( 'to' => $req->device_token, 'notification' => [ 'body' => $req->text, 'title' => $req->title, 'sound' => 'default' /*Default sound*/ ], 'data' => [ 'item_type' => $req->type, 'item_type_id' => $req->id, 'click_action' => 'FLUTTER_NOTIFICATION_CLICK' ] ); //$fields = json_encode($arrayToSend); $headers = array( 'Authorization: key=' . env('FCM_SERVER_KEY'), 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); curl_close($ch); $firebase_notification = new FirebaseNotification; $firebase_notification->title = $req->title; $firebase_notification->text = $req->text; $firebase_notification->item_type = $req->type; $firebase_notification->item_type_id = $req->id; $firebase_notification->receiver_id = $req->user_id; $firebase_notification->save(); } }