6
0
Fork 0
jiqu-library-server/app/Endpoint/Api/Http/Controllers/Order/StatisticsController.php

41 lines
1.2 KiB
PHP

<?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),
]);
}
}