order list

This commit is contained in:
Edward Yang 2022-07-05 10:42:31 +08:00
parent e3335cfb26
commit 71395b5e40
5 changed files with 108 additions and 5 deletions

View File

@ -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

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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');
});
});

View File

@ -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