feat: 添加仪表盘接口,聚合财务、风控和待办计数,增强管理员 API 路由功能

This commit is contained in:
2026-05-11 17:02:28 +08:00
parent fc023242ce
commit 0cbd64a5af
4 changed files with 380 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Http\Controllers\Api\V1\Admin\Dashboard;
use App\Http\Controllers\Controller;
use App\Lottery\ErrorCode;
use App\Models\AdminUser;
use App\Services\Admin\AdminDashboardSnapshotBuilder;
use App\Support\ApiResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
/**
* GET /api/v1/admin/dashboard 首页仪表盘聚合数据(需登录;按权限返回子块)。
*/
final class AdminDashboardController extends Controller
{
public function __construct(
private readonly AdminDashboardSnapshotBuilder $dashboard,
) {}
public function __invoke(Request $request): JsonResponse
{
$admin = $request->lotteryAdmin();
if (! $admin instanceof AdminUser) {
return ApiResponse::error(
trans('admin.unauthenticated', [], $request->lotteryLocale()),
ErrorCode::AdminUnauthenticated->value,
null,
401,
);
}
return ApiResponse::success($this->dashboard->build($admin));
}
}