From c072dde9d5243767fd17afb3ea1e9c92b8865f8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=92=95=E8=B0=B7=E9=85=B1?= <74496778+GooGuJiang@users.noreply.github.com> Date: Thu, 11 Sep 2025 02:49:19 +0800 Subject: [PATCH] Fix the interface return format --- app/router/v1/public_user.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/router/v1/public_user.py b/app/router/v1/public_user.py index 406ffd8..65ddd2a 100644 --- a/app/router/v1/public_user.py +++ b/app/router/v1/public_user.py @@ -20,6 +20,7 @@ from app.log import logger from app.router.v1.public_router import public_router, AllStrModel from fastapi import HTTPException, Query +from fastapi.responses import JSONResponse from sqlmodel import select @@ -133,11 +134,8 @@ async def _count_online_users_optimized(redis): 首先尝试使用HyperLogLog近似计数,失败则回退到SCAN """ try: - # 方案1: 尝试使用更高效的方法 - 如果项目维护了在线用户集合 - # 检查是否存在在线用户集合键 online_set_key = "metadata:online_users_set" if await redis.exists(online_set_key): - # 如果存在维护好的在线用户集合,直接获取数量 count = await redis.scard(online_set_key) logger.debug(f"Using online users set, count: {count}") return count @@ -181,7 +179,6 @@ async def _count_online_users_optimized(redis): @public_router.get( "/get_player_info", - response_model=GetPlayerInfoResponse, name="获取玩家信息", description="返回指定玩家的信息。", ) @@ -210,7 +207,11 @@ async def api_get_player_info( user = (await session.exec(select(User).where(User.username == name))).first() if not user: - raise HTTPException(404, "User not found") + from fastapi.responses import JSONResponse + return JSONResponse( + status_code=200, + content={"status": "Player not found."} + ) try: if scope == "stats":