From fed5181dc8cb6a31d686a31a2ab6f1bea92ba03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Thu, 16 Dec 2021 17:30:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=95=B0=E6=8D=AE=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order/StatisticsController.php | 40 +++++++++++++++++++ app/Endpoint/Api/routes.php | 4 +- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 app/Endpoint/Api/Http/Controllers/Order/StatisticsController.php diff --git a/app/Endpoint/Api/Http/Controllers/Order/StatisticsController.php b/app/Endpoint/Api/Http/Controllers/Order/StatisticsController.php new file mode 100644 index 00000000..3ac8303d --- /dev/null +++ b/app/Endpoint/Api/Http/Controllers/Order/StatisticsController.php @@ -0,0 +1,40 @@ +user(); + + // 如果有已过期的订单,则将过期订单的状态修改为已取消 + if ($user->orders()->expired()->count()) { + $user->orders()->expired()->update([ + 'status' => Order::STATUS_CANCELLED, + ]); + } + + $statistics = $user->orders() + ->selectRaw('count(1) as aggregate, status') + ->groupBy('status') + ->pluck('aggregate', 'status'); + + return response()->json([ + // 待付款订单数 + 'pending_orders_count' => $statistics->get(Order::STATUS_PENDING, 0), + // 待收货订单数 + 'unreceived_orders_count' => $statistics->get(Order::STATUS_PAID, 0) + $statistics->get(Order::STATUS_SHIPPED, 0), + ]); + } +} diff --git a/app/Endpoint/Api/routes.php b/app/Endpoint/Api/routes.php index 73bfe786..8f7671ec 100644 --- a/app/Endpoint/Api/routes.php +++ b/app/Endpoint/Api/routes.php @@ -14,6 +14,7 @@ use App\Endpoint\Api\Http\Controllers\ClickController; use App\Endpoint\Api\Http\Controllers\MessageController; use App\Endpoint\Api\Http\Controllers\Order\OrderController; use App\Endpoint\Api\Http\Controllers\Order\OrderVerifyController; +use App\Endpoint\Api\Http\Controllers\Order\StatisticsController; use App\Endpoint\Api\Http\Controllers\Product\HotController; use App\Endpoint\Api\Http\Controllers\Product\PartController; use App\Endpoint\Api\Http\Controllers\Product\ProductCategoryController; @@ -110,11 +111,12 @@ Route::group([ Route::post('click', [ClickController::class, 'click']); // 订单 + Route::get('order/statistics', StatisticsController::class); + Route::post('order/verify-order', OrderVerifyController::class); Route::apiResource('order/orders', OrderController::class)->only([ 'index', 'store', 'show', ]); Route::post('order/orders/{order}/confirm', [OrderController::class, 'confirm']); Route::post('order/orders/{order}/cancel', [OrderController::class, 'cancel']); - Route::post('order/verify-order', OrderVerifyController::class); }); });