|
|
|
@ -22,7 +22,8 @@ from app.api.chat.ai.chat_service import ( |
|
|
|
|
get_scenic_detail_data, |
|
|
|
|
get_scenic_parking_data, |
|
|
|
|
extract_multi_scenic, |
|
|
|
|
query_multi_scenic_flow |
|
|
|
|
query_multi_scenic_flow, |
|
|
|
|
get_all_toilet_data |
|
|
|
|
) |
|
|
|
|
# 导入用于异步执行同步函数的模块 |
|
|
|
|
from concurrent.futures import ThreadPoolExecutor |
|
|
|
@ -349,6 +350,47 @@ async def get_all_scenic_flow(request: Request, req: AllScenicFlowRequest): |
|
|
|
|
"data": [] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.post("/get_all_toilet_info") |
|
|
|
|
async def get_all_toilet_info(request: Request, req: AllScenicFlowRequest): |
|
|
|
|
""" |
|
|
|
|
获取所有厕所信息 |
|
|
|
|
""" |
|
|
|
|
# 验签逻辑 |
|
|
|
|
if not req.sign: |
|
|
|
|
raise HTTPException(status_code=401, detail="缺少签名参数") |
|
|
|
|
|
|
|
|
|
if not verify_timestamp(req.timestamp): |
|
|
|
|
raise HTTPException(status_code=401, detail="时间戳无效") |
|
|
|
|
|
|
|
|
|
# 构建验证数据(无其他参数,仅包含timestamp) |
|
|
|
|
data = {"timestamp": req.timestamp} |
|
|
|
|
if not verify_signature(data, req.sign): |
|
|
|
|
raise HTTPException(status_code=401, detail="无效的签名") |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
data = await get_all_toilet_data(request) |
|
|
|
|
|
|
|
|
|
if not data: |
|
|
|
|
return { |
|
|
|
|
"code": 404, |
|
|
|
|
"message": "未找到厕所信息", |
|
|
|
|
"data": [] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
"code": 200, |
|
|
|
|
"message": "查询成功", |
|
|
|
|
"data": data |
|
|
|
|
} |
|
|
|
|
except Exception as e: |
|
|
|
|
print(f"查询所有厕所信息异常: {e}") |
|
|
|
|
return { |
|
|
|
|
"code": 500, |
|
|
|
|
"message": f"查询异常: {str(e)}", |
|
|
|
|
"data": [] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# 在现有路由下方添加新接口 |
|
|
|
|
@router.post("/get_scenic_detail") |
|
|
|
|
async def get_scenic_detail(request: Request, req: ScenicDetailRequest): |
|
|
|
|