订单数据统计
parent
0ffac31495
commit
fed5181dc8
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
namespace App\Endpoint\Api\Http\Controllers\Order;
|
||||
|
||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||
use App\Models\Order;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class StatisticsController extends Controller
|
||||
{
|
||||
/**
|
||||
* 订单统计
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$user = $request->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),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue