增加了获取厕所数据的接口

main
zc 2 months ago
parent c3d4069876
commit 5e84ea97b0
  1. 44
      app/api/chat/ai/chat_router.py
  2. 87
      app/api/chat/ai/chat_service.py

@ -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):

@ -910,3 +910,90 @@ async def query_multi_scenic_flow(request: Request, scenics: list,msg: str) -> s
return "**未找到景区信息,请检查名称是否正确。**\n\n(内容由AI生成,仅供参考)"
# 在文件末尾添加新函数用于获取所有厕所信息
async def get_all_toilet_data(request: Request) -> list:
"""
查询所有厕所信息
"""
try:
pool = request.app.state.mysql_pool
async with pool.acquire() as conn:
async with conn.cursor() as cur:
# 查询所有厕所信息
query = """
SELECT
id,
banner,
title,
is_recommend,
is_ai,
address,
longitude,
latitude,
open_time,
score,
nan_num,
nv_num,
peitao,
is_power,
is_aixin,
createtime,
updatetime
FROM
cyjcpt_bd.ai_toilet_info
ORDER BY
id
"""
await cur.execute(query)
rows = await cur.fetchall()
# 处理结果
result = []
for row in rows:
(
id,
banner,
title,
is_recommend,
is_ai,
address,
longitude,
latitude,
open_time,
score,
nan_num,
nv_num,
peitao,
is_power,
is_aixin,
createtime,
updatetime
) = row
result.append({
"id": id,
"banner": banner,
"title": title,
"is_recommend": is_recommend,
"is_ai": is_ai,
"address": address,
"longitude": longitude,
"latitude": latitude,
"open_time": open_time,
"score": score,
"nan_num": nan_num,
"nv_num": nv_num,
"peitao": peitao,
"is_power": is_power,
"is_aixin": is_aixin,
"createtime": createtime,
"updatetime": updatetime
})
return result
except Exception as e:
print(f"[MySQL] 查询所有厕所数据失败: {e}")
return []

Loading…
Cancel
Save