order list
This commit is contained in:
parent
e3335cfb26
commit
71395b5e40
|
|
@ -11,13 +11,40 @@
|
||||||
|
|
||||||
namespace Beike\Repositories;
|
namespace Beike\Repositories;
|
||||||
|
|
||||||
use Beike\Models\Customer;
|
|
||||||
use Beike\Models\Order;
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use http\Client;
|
use Beike\Models\Order;
|
||||||
|
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class OrderRepo
|
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
|
* @param array $data
|
||||||
* @return Order
|
* @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\Models\Customer;
|
||||||
use Beike\Shop\Http\Controllers\Account\AddressController;
|
use Beike\Shop\Http\Controllers\Account\AddressController;
|
||||||
|
use Beike\Shop\Http\Controllers\Account\OrderController;
|
||||||
use Beike\Shop\Http\Controllers\ZoneController;
|
use Beike\Shop\Http\Controllers\ZoneController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Beike\Shop\Http\Controllers\CartController;
|
use Beike\Shop\Http\Controllers\CartController;
|
||||||
|
|
@ -48,12 +49,13 @@ Route::prefix('/')
|
||||||
Route::post('checkout/confirm', [CheckoutController::class, 'confirm'])->name('checkout.confirm');
|
Route::post('checkout/confirm', [CheckoutController::class, 'confirm'])->name('checkout.confirm');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::prefix('account/')
|
Route::prefix('account')
|
||||||
->middleware('shop_auth:' . Customer::AUTH_GUARD)
|
->middleware('shop_auth:' . Customer::AUTH_GUARD)
|
||||||
->group(function () {
|
->group(function () {
|
||||||
Route::get('/', [AccountController::class, 'index'])->name('account.index');
|
Route::get('/', [AccountController::class, 'index'])->name('account.index');
|
||||||
|
|
||||||
Route::resource('addresses', AddressController::class);
|
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