From 09aa34b36a252ff1358fd7c9f7373bfb6af900ac Mon Sep 17 00:00:00 2001 From: rahul shukla Date: Tue, 9 Apr 2019 14:05:57 +0530 Subject: [PATCH] issue #749 fixed again & reduce query --- .../Http/Controllers/AddressController.php | 32 +++++++++---------- .../src/Http/Controllers/OrderController.php | 31 +++++++++--------- .../src/Http/Controllers/ReviewController.php | 18 +++++------ packages/Webkul/Shop/src/Http/routes.php | 6 ++-- 4 files changed, 43 insertions(+), 44 deletions(-) rename packages/Webkul/{Customer => Shop}/src/Http/Controllers/OrderController.php (74%) mode change 100755 => 100644 diff --git a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php index dd828aec9..aaddd4160 100755 --- a/packages/Webkul/Customer/src/Http/Controllers/AddressController.php +++ b/packages/Webkul/Customer/src/Http/Controllers/AddressController.php @@ -107,15 +107,15 @@ class AddressController extends Controller */ public function edit($id) { - $addresses = $this->customer->addresses; + $address = $this->address->findOneWhere([ + 'id' => $id, + 'customer_id' => auth()->guard('customer')->user()->id + ]); - foreach ($addresses as $address) { - if ($id == $address->id) { - return view($this->_config['view'], compact('address')); - } - } + if (! $address) + abort(404); - return redirect()->route('customer.address.index'); + return view($this->_config['view'], compact('address')); } /** @@ -142,7 +142,7 @@ class AddressController extends Controller $addresses = $this->customer->addresses; foreach($addresses as $address) { - if($id == $address->id) { + if ($id == $address->id) { session()->flash('success', trans('shop::app.customer.account.address.edit.success')); $this->address->update($data, $id); @@ -185,17 +185,17 @@ class AddressController extends Controller */ public function destroy($id) { - $addresses = $this->customer->addresses; + $address = $this->address->findOneWhere([ + 'id' => $id, + 'customer_id' => auth()->guard('customer')->user()->id + ]); - foreach($addresses as $address) { - if($id == $address->id) { - $this->address->delete($id); + if (! $address) + abort(404); - session()->flash('success', trans('shop::app.customer.account.address.delete.success')); + $this->address->delete($id); - return redirect()->route('customer.address.index'); - } - } + session()->flash('success', trans('shop::app.customer.account.address.delete.success')); return redirect()->route('customer.address.index'); } diff --git a/packages/Webkul/Customer/src/Http/Controllers/OrderController.php b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php old mode 100755 new mode 100644 similarity index 74% rename from packages/Webkul/Customer/src/Http/Controllers/OrderController.php rename to packages/Webkul/Shop/src/Http/Controllers/OrderController.php index 30ebdf581..692885f78 --- a/packages/Webkul/Customer/src/Http/Controllers/OrderController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OrderController.php @@ -1,6 +1,6 @@ guard('customer')->user()->all_orders; + public function index() { + $orders = $this->order->findWhere([ + 'customer_id' => auth()->guard('customer')->user()->id + ]); return view($this->_config['view'], compact('orders')); } @@ -80,15 +81,15 @@ class OrderController extends Controller */ public function view($id) { - $orders = auth()->guard('customer')->user()->all_orders; + $order = $this->order->findOneWhere([ + 'customer_id' => auth()->guard('customer')->user()->id, + 'id' => $id + ]); - if(isset($orders) && count($orders)) { - $order = $orders->first(); + if (! $order) + abort(404); - return view($this->_config['view'], compact('order')); - } else { - return redirect()->route( 'customer.orders.index'); - } + return view($this->_config['view'], compact('order')); } /** @@ -99,10 +100,10 @@ class OrderController extends Controller */ public function print($id) { - $invoice = $this->invoice->find($id); + $invoice = $this->invoice->findOrFail($id); $pdf = PDF::loadView('shop::customers.account.orders.pdf', compact('invoice'))->setPaper('a4'); return $pdf->download('invoice-' . $invoice->created_at->format('d-m-Y') . '.pdf'); } -} +} \ No newline at end of file diff --git a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php index 50c80424f..67de4cd36 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/ReviewController.php @@ -119,19 +119,17 @@ class ReviewController extends Controller */ public function destroy($id) { - $reviews = auth()->guard('customer')->user()->all_reviews; + $reviews = $this->productReview->findOneWhere([ + 'id' => $id, + 'customer_id' => auth()->guard('customer')->user()->id + ]); - if ($reviews->count() > 0) { - foreach ($reviews as $review) { - if ($review->id == $id) { - $this->productReview->delete($id); + if (! $reviews) + abort(404); - session()->flash('success', trans('shop::app.response.delete-success', ['name' => 'Product Review'])); + $this->productReview->delete($id); - return redirect()->route($this->_config['redirect']); - } - } - } + session()->flash('success', trans('shop::app.response.delete-success', ['name' => 'Product Review'])); return redirect()->route($this->_config['redirect']); } diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index f38a989cc..e54a08535 100755 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -242,17 +242,17 @@ Route::group(['middleware' => ['web', 'theme', 'locale', 'currency']], function /* Orders route */ //Customer orders(listing) - Route::get('orders', 'Webkul\Customer\Http\Controllers\OrderController@index')->defaults('_config', [ + Route::get('orders', 'Webkul\Shop\Http\Controllers\OrderController@index')->defaults('_config', [ 'view' => 'shop::customers.account.orders.index' ])->name('customer.orders.index'); //Customer orders view summary and status - Route::get('orders/view/{id}', 'Webkul\Customer\Http\Controllers\OrderController@view')->defaults('_config', [ + Route::get('orders/view/{id}', 'Webkul\Shop\Http\Controllers\OrderController@view')->defaults('_config', [ 'view' => 'shop::customers.account.orders.view' ])->name('customer.orders.view'); //Prints invoice - Route::get('orders/print/{id}', 'Webkul\Customer\Http\Controllers\OrderController@print')->defaults('_config', [ + Route::get('orders/print/{id}', 'Webkul\Shop\Http\Controllers\OrderController@print')->defaults('_config', [ 'view' => 'shop::customers.account.orders.print' ])->name('customer.orders.print');