🎉初次提交

This commit is contained in:
2025-08-03 16:50:56 +08:00
commit 56bdf5388d
67 changed files with 18379 additions and 0 deletions

77
router/aac/__init__.py Normal file
View File

@@ -0,0 +1,77 @@
from fastapi import Depends
from fastapi.routing import APIRouter
from provider.aufe.aac import AACClient
from provider.aufe.aac.depends import get_aac_client
from provider.loveac.authme import AuthmeResponse
from router.aac.model import ScoreInfoResponse, ScoreListResponse
from router.common_model import ErrorResponse
aac_router = APIRouter(prefix="/api/v1/aac")
@aac_router.post(
"/fetch_score_info",
summary="获取爱安财总分信息",
response_model=ScoreInfoResponse | AuthmeResponse | ErrorResponse,
)
async def fetch_score_info(client: AACClient = Depends(get_aac_client)):
"""获取爱安财系统的总分信息"""
try:
result = await client.fetch_score_info()
# 检查是否是AuthmeResponse认证错误
if isinstance(result, AuthmeResponse):
return result
# 使用新的错误检测机制
response = ScoreInfoResponse.from_data(
data=result,
success_message="爱安财总分信息获取成功",
error_message="获取爱安财总分信息失败,网络请求多次重试后仍无法连接服务器,请稍后重试或联系管理员",
)
return response
except Exception as e:
return ErrorResponse(
message=f"获取爱安财总分信息时发生系统错误:{str(e)}", code=500
)
@aac_router.post(
"/fetch_score_list",
summary="获取爱安财分数明细列表",
response_model=ScoreListResponse | AuthmeResponse | ErrorResponse,
)
async def fetch_score_list(
client: AACClient = Depends(get_aac_client),
):
"""获取爱安财系统的分数明细列表"""
try:
result = await client.fetch_score_list()
# 检查是否是AuthmeResponse认证错误
if isinstance(result, AuthmeResponse):
return result
# 检查分数列表数据
if result and hasattr(result, "data") and result.data:
# 使用新的错误检测机制检查列表数据
response = ScoreListResponse.from_data(
data=result.data,
success_message="爱安财分数明细获取成功",
error_message="获取爱安财分数明细失败,网络请求多次重试后仍无法连接服务器,请稍后重试或联系管理员",
)
return response
else:
# 没有数据的情况
return ScoreListResponse.error(
message="暂无爱安财分数数据,请确认您的账户状态或稍后再试",
code=404,
data=[],
)
except Exception as e:
return ErrorResponse(
message=f"获取爱安财分数明细时发生系统错误:{str(e)}", code=500
)

16
router/aac/model.py Normal file
View File

@@ -0,0 +1,16 @@
from router.common_model import BaseResponse
from provider.aufe.aac.model import LoveACScoreInfo, LoveACScoreCategory
from typing import List
# 统一响应模型
class ScoreInfoResponse(BaseResponse[LoveACScoreInfo]):
"""爱安财总分信息响应"""
pass
class ScoreListResponse(BaseResponse[List[LoveACScoreCategory]]):
"""爱安财分数明细列表响应"""
pass