order list
This commit is contained in:
parent
e3335cfb26
commit
71395b5e40
|
|
@ -11,13 +11,40 @@
|
|||
|
||||
namespace Beike\Repositories;
|
||||
|
||||
use Beike\Models\Customer;
|
||||
use Beike\Models\Order;
|
||||
use Carbon\Carbon;
|
||||
use http\Client;
|
||||
use Beike\Models\Order;
|
||||
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class OrderRepo
|
||||
{
|
||||
/**
|
||||
* 获取订单列表
|
||||
*
|
||||
* @param null $customer
|
||||
* @return LengthAwarePaginator
|
||||
*/
|
||||
public static function getListByCustomer($customer): LengthAwarePaginator
|
||||
{
|
||||
$builder = self::getListBuilder($customer);
|
||||
return $builder->paginate();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param null $customer
|
||||
* @return Builder
|
||||
*/
|
||||
private static function getListBuilder($customer = null): Builder
|
||||
{
|
||||
$builder = Order::query();
|
||||
if ($customer) {
|
||||
$builder->where('customer_id', $customer->id);
|
||||
}
|
||||
return $builder;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @return Order
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
/**
|
||||
* OrderController.php
|
||||
*
|
||||
* @copyright 2022 opencart.cn - All Rights Reserved
|
||||
* @link http://www.guangdawangluo.com
|
||||
* @author Edward Yang <yangjin@opencart.cn>
|
||||
* @created 2022-07-05 10:29:07
|
||||
* @modified 2022-07-05 10:29:07
|
||||
*/
|
||||
|
||||
namespace Beike\Shop\Http\Controllers\Account;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Beike\Repositories\OrderRepo;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Beike\Shop\Http\Controllers\Controller;
|
||||
use Beike\Shop\Http\Resources\Account\OrderList;
|
||||
|
||||
class OrderController extends Controller
|
||||
{
|
||||
/**
|
||||
* 获取当前客户订单列表
|
||||
*
|
||||
* @param Request $request
|
||||
* @return View
|
||||
*/
|
||||
public function index(Request $request): View
|
||||
{
|
||||
$orders = OrderRepo::getListByCustomer(current_customer());
|
||||
$data = [
|
||||
'orders' => OrderList::collection($orders),
|
||||
];
|
||||
|
||||
return view('account/order', $data);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
/**
|
||||
* OrderList.php
|
||||
*
|
||||
* @copyright 2022 opencart.cn - All Rights Reserved
|
||||
* @link http://www.guangdawangluo.com
|
||||
* @author Edward Yang <yangjin@opencart.cn>
|
||||
* @created 2022-07-05 10:39:55
|
||||
* @modified 2022-07-05 10:39:55
|
||||
*/
|
||||
|
||||
namespace Beike\Shop\Http\Resources\Account;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class OrderList extends JsonResource
|
||||
{
|
||||
public function toArray($request): array
|
||||
{
|
||||
$data = [
|
||||
'id' => $this->id,
|
||||
'number' => $this->number,
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
use Beike\Models\Customer;
|
||||
use Beike\Shop\Http\Controllers\Account\AddressController;
|
||||
use Beike\Shop\Http\Controllers\Account\OrderController;
|
||||
use Beike\Shop\Http\Controllers\ZoneController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Beike\Shop\Http\Controllers\CartController;
|
||||
|
|
@ -48,12 +49,13 @@ Route::prefix('/')
|
|||
Route::post('checkout/confirm', [CheckoutController::class, 'confirm'])->name('checkout.confirm');
|
||||
});
|
||||
|
||||
Route::prefix('account/')
|
||||
Route::prefix('account')
|
||||
->middleware('shop_auth:' . Customer::AUTH_GUARD)
|
||||
->group(function () {
|
||||
Route::get('/', [AccountController::class, 'index'])->name('account.index');
|
||||
|
||||
Route::resource('addresses', AddressController::class);
|
||||
|
||||
Route::get('orders', [OrderController::class, 'index'])->name('account.order.index');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
@extends('layout.master')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<h1>我的订单</h1>
|
||||
@foreach ($orders as $order)
|
||||
<div class="col-6 col-md-3">{{ $order->number }}</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endsection
|
||||
Loading…
Reference in New Issue