⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.216
Server IP:
157.245.101.34
Server:
Linux skvinfotech-website 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64
Server Software:
Apache/2.4.41 (Ubuntu)
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
html
/
app
/
Http
/
Controllers
/
api
/
View File Name :
ProductController.php
<?php namespace App\Http\Controllers\api; use Illuminate\Support\Facades\Auth; use App\Models\Order; use App\Models\Product; use App\Models\UserDevice; use App\Models\OrderProduct; use App\Models\UserAddress; use Illuminate\Http\Request; use App\Models\UserNotification; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Validator; use App\Imports\OrdersImport; use Maatwebsite\Excel\Facades\Excel; use Log; use Illuminate\Support\Facades\DB; class ProductController extends Controller { public function productsList(Request $request) { $type = $request->type; if (empty($type)) { return response()->json(['success' => false, 'message' => 'type required']); } $products = Product::active()->where('type', $type)->whereNull('other_id')->get(); $data = []; foreach ($products as $product) { $data[] = array( 'id' => $product->id, 'product_name' => $product->product_name, 'image_path' => $product->image_path ); } return response()->json(['success' => true, 'message' => 'products list', 'data' => $data],200); } public function ordersList(Request $request) { //log::info($request); $validate = Validator::make($request->all(),[ 'type' => 'required|in:home,bill', ]); if($validate->fails()){ return response()->json(['status' => 'error','message' => $validate->errors()->first()],400); } $user_data = $request->user(); $user_id = $user_data['id']; $data = []; if($request->type == "home"){ $orders_requests = Order::where('user_id', $user_id)->with(['orderedProducts.product'])->whereIn('request_status',[0,1,3,5]) ->orderByDesc('created_at')->get(); //log::info($orders_requests); foreach ($orders_requests as $order) { $data[] = array( 'id' => $order->id, 'order_id' => strtoupper($order->ordername_id), 'total_weight' => $order->total_weight, 'total_quantity' => $order->total_quantity, 'requested_date' => date('d-m-Y', strtotime($order->created_at)), 'order_status' => $order->request_status, 'image' => $order->orderedProducts, 'user_address_detail' => $order->user_address_detail, ); } }else{ $orders_requests = Order::where('user_id', $user_id)->with('orderedProducts')->whereIn('request_status',[2,4]) ->orderByDesc('created_at')->get(); foreach ($orders_requests as $order) { $data = array( 'id' => $order->id, 'order_id' => strtoupper($order->ordername_id), 'total_weight' => $order->total_weight, 'total_quantity' => $order->total_quantity, 'requested_date' => date('d-m-Y', strtotime($order->created_at)), 'order_status' => $order->request_status, 'pdf_url' => asset('order/pdf/'.$order->id), 'image' => $order->orderedProducts[0]->product, 'user_address_detail' => $order->user_address_detail, ); } } // $token = DB::table('map_tokens')->first(); $sample_excel = asset('skvewastesample.xlsx'); //log::info($data); return response()->json(['success' => true, 'message' => 'orders list', 'data' => $data,'sample_excel' => $sample_excel],200); } public function orderDetail(Request $request) { $user_data = $request->user(); $user_id = $user_data['id']; $order_id = $request->order_id; if (empty($order_id)) { return response()->json(['success' => false, 'message' => 'order id required']); } // $data = []; $order = Order::find($order_id); if (!$order) { return response()->json(['success' => false, 'message' => 'invalid order id']); } $products_data = $order->orderedProducts->map(function ($order_product) { return [ 'product_id' => $order_product->product_id, 'product_name' => $order_product->product->product_name, 'quantity' => $order_product->quantity, 'image_path' => $order_product->product->image_path ]; }); $request_date = date('D, d-m-Y, g:i a', strtotime($order->created_at)); $data = [ 'id' => $order->id, 'order_id' => $order->ordername_id, 'total_weight' => $order->total_weight, 'total_quantity' => $order->total_quantity, 'requested_date' => $request_date, 'products' => $products_data ]; return response()->json(['success' => true, 'message' => 'order detail', 'data' => $data]); } /* public function orderRequest(Request $request) { $validate = Validator::make($request->all(),[ 'products' => 'required', 'address_id' => 'required', 'type' => 'required|in:bussiness,residential', ]); if($validate->fails()){ return response()->json(['status' => 'error','message' => $validate->errors()->first()],400); } $user_data = $request->user(); $user_id = $user_data['id']; $products = $request->products; $product_collections = collect($products); $total_quantity = $product_collections->sum('quantity'); //return $products; // if ($products->isEmpty()) { // return response()->json(['success' => false, 'message' => 'product id required']); // } $order_id = uniqid(); $order_request = new Order(); $order_request->user_id = $user_id; $order_request->ordername_id = $order_id; $order_request->total_quantity = $total_quantity; $order_request->request_status = 0; $order_request->user_address_id = $request->address_id; $address = UserAddress::find($request->address_id); $order_request->user_address_detail = $address; $order_request->order_type = $request->type; $order_request->save(); foreach ($products as $product) { //dd($product->product_id); $order_products = new OrderProduct(); $order_products->user_id = $user_id; $order_products->order_id = $order_request->id; $order_products->product_id = $product['product_id']; $order_products->quantity = $product['quantity']; $order_products->save(); } $id = $order_request->user_id; $title = "SKV EWASTE"; $message = "Your Order Has Been Received ORDER ID:".$order_request->ordername_id; $this->pushNotification($id, $title, $message); $user_notification = new UserNotification(); $user_notification->user_id = $user_id; $user_notification->message = $message; $user_notification->notifiable_id = $order_request->id; $user_notification->notifiable_type = "order"; $user_notification->save(); return response()->json(['success' => true, 'message' => 'order requested successfully']); }*/ public function orderRequest(Request $request){ //Log::info($request); $validate = Validator::make($request->all(),[ 'order_type' => 'required|in:manual,import', ]); if($validate->fails()){ return response()->json(['status' => 'error','message' => $validate->errors()->first()],400); } $user_data = $request->user(); if($request->order_type == "manual"){ $validate1 = Validator::make($request->all(),[ 'products' => 'required', // 'address' => 'required', 'type' => 'required|in:business,residential', ]); if($validate1->fails()){ return response()->json(['status' => 'error','message' => $validate1->errors()->first()],400); } $user_id = $user_data['id']; $products = $request->products; $product_collections = collect($products); $total_quantity = $product_collections->sum('quantity'); //log::info($products); //log::info($product_collections); //log::info($total_quantity); //return $products; // if ($products->isEmpty()) { // return response()->json(['success' => false, 'message' => 'product id required']); // } $order_id = uniqid(); $order_request = new Order(); $order_request->user_id = $user_id; $order_request->ordername_id = $order_id; $order_request->total_quantity = $total_quantity; $order_request->request_status = 0; $order_request->user_address_detail = json_encode($request->address); // $order_request->user_address_detail = $request->address; $order_request->order_type = $request->type; $order_request->save(); foreach ($products as $product) { //dd($product->product_id); $order_products = new OrderProduct(); $order_products->user_id = $user_id; $order_products->order_id = $order_request->id; $order_products->product_id = $product['product_id']; $order_products->quantity = $product['quantity']; $order_products->save(); } $id = $order_request->user_id; $title = "SKV EWASTE"; $message = "Your Order Has Been Received ORDER ID:".$order_request->ordername_id; $this->pushNotification($id, $title, $message); $user_notification = new UserNotification(); $user_notification->user_id = $user_id; $user_notification->message = $message; $user_notification->notifiable_id = $order_request->id; $user_notification->notifiable_type = "order"; $user_notification->save(); return response()->json(['success' => true, 'message' => 'order requested successfully']); }else{ $validate2 = Validator::make($request->all(),[ // 'address' => 'required', 'type' => 'required|in:business,residential', 'order_file' => 'required|file', ]); if($validate2->fails()){ return response()->json(['status' => 'error','message' => $validate2->errors()->first()],400); } $order_id = uniqid(); $order = new Order(); $order->user_id = $user_data->id; $order->ordername_id = $order_id; // $order->total_quantity = $quantity; $order->request_status = 0; $order->user_address_detail = json_encode($request->address); $order->order_type = $request->type; $order->save(); $excel = Excel::import(new OrdersImport($request->type,$request->address,$order->id),request()->file('order_file')); // dd($excel); if(session()->has('order_import_error')){ return response()->json(['status' => 'error','message' => session('order_import_error')]); } // dd("somethimng"); if(session()->has('order_import_success')){ $id = $user_data->id; $title = "SKV EWASTE"; $message = "Your Order Has Been Received ORDER ID:".$order->ordername_id; $this->pushNotification($id, $title, $message); $user_notification = new UserNotification(); $user_notification->user_id = $user_data->id; $user_notification->message = $message; $user_notification->notifiable_id = $order->id; $user_notification->notifiable_type = "order"; $user_notification->save(); // return response()->json(['status' => 'success','message' => "The order has been placed"],200); } foreach($order->orderedProducts as $product){ $sum[] = $product->quantity; } $orderof = Order::find($order->id); $orderof->total_quantity = array_sum($sum); $orderof->save(); return response()->json(['status' => 'success','message' => "The order has been placed"],200); } } public function cancelleOrder(Request $request) { $validate = Validator::make($request->all(),[ 'order_id' => 'required', ]); if($validate->fails()) { return response()->json(['status' => 'error','message' => $validate->errors()->first()],400); } $order = Order::find($request->order_id); if($order->request_status != 1) { if($order->request_status != 3) { $order->request_status = 5; $order->save(); $id = Auth::id(); $title = "SKV EWASTE"; $message = "Your Order Has Been Canclled ORDER ID:".$order->ordername_id; $this->pushNotification($id, $title, $message); $user_notification = new UserNotification(); $user_notification->user_id = $id; $user_notification->message = $message; $user_notification->notifiable_id = $order->id; $user_notification->notifiable_type = "order"; $user_notification->save(); return response()->json(['status' => 'success','message' => 'Order Cancelled successfully'],200); }else{ return response()->json(['status' => 'error','message' => 'Your order has been rejected,So your not able to cancelled your order'],400); } }else{ return response()->json(['status' => 'error','message' => 'Your Order Has Been Accepted'],400); } } public function notificationList(Request $request) { $user_data = $request->user(); $user_id = $user_data['id']; $user_notifications = UserNotification::where('user_id', $user_id)->orderByDesc('created_at')->get(); $data = []; foreach ($user_notifications as $notification) { $data[] = array( 'id' => $notification->id, 'message' => $notification->message, 'date' => date('D,d-m-Y', strtotime($notification->created_at)), ); } return response()->json(['success' => true, 'message' => 'notifications list', 'data' => $data]); } public function pushNotification($id, $title, $message) { $url = "https://fcm.googleapis.com/fcm/send"; $sender_id = 1041221137903; $server_key = "AAAAFZqhL-s:APA91bHXRz8Qy3zlU5S9XXJdMtd9huGPLAbQqtaFk-sOsYVPDdyk3Tzk1L40fskpAndmvNmiGVq6fqn8fzVixCIW8J5a1F0-e_l5W7aSQHlJkLZuVDlJhx1CKNsY-iC_L69HhDMLuZyQ"; $user = UserDevice::where('user_id', $id)->orderByDesc('created_at')->first(); $fcm_id = $user->fcm_id; //dd($fcm_id); $header = array( "authorization: key=" . $server_key . "", "content-type: application/json" ); $data = '{ "to" : "' . $fcm_id . '", "data": { "title":"' . $title . '", "body" : "' . $message . '" }, }'; $ch = curl_init(); $timeout = 120; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); // Get URL content $result = curl_exec($ch); // close handle to release resources curl_close($ch); // dd($result); } }