@ -9,6 +9,8 @@ import json
import re
from typing import List
import requests
from chinese_calendar import is_holiday
from datetime import datetime
load_dotenv ( )
@ -342,14 +344,28 @@ async def query_flow(request: Request, spot: str) -> str:
# 查询停车场信息
park_query = """ SELECT t3.park_name AS park_name, IFNULL(t3.rate_info, ' 暂无收费标准信息 ' ) AS rate_info, t3.total_count AS total_count, t4.space AS space, t1.distance_value AS distance_value
FROM cyjcpt_bd . scenic_pack_distance t1 LEFT JOIN cyjcpt_bd . zhly_scenic_basic t2 ON t1 . scenic_id = t2 . id
FROM cyjcpt_bd . scenic_pack_distance t1
LEFT JOIN cyjcpt_bd . zhly_scenic_basic t2 ON t1 . scenic_id = t2 . id
LEFT JOIN cyjcpt_bd . park_info t3 ON t1 . park_code = t3 . park_code
LEFT JOIN equipment_passenger_flow . park_current t4 ON t1 . park_code = t4 . park_code
WHERE t2 . ` name ` LIKE % s AND t1 . distance_value < = 1000 AND t3 . total_count != 0 ORDER BY t1 . distance_value ASC LIMIT 2 """
WHERE t2 . ` name ` LIKE % s AND t1 . distance_value < = 1000 AND t3 . total_count != 0 { status_condition } ORDER BY t1 . distance_value ASC LIMIT 2 """
#获取当前日期
now = datetime . now ( )
# 根据是否为节假日设置状态条件
if is_holiday ( now ) :
# 节假日不添加status条件,查询全部
status_condition = " "
else :
# 非节假日添加status=0的条件
status_condition = " AND t3.`status` = ' 0 ' "
# 格式化SQL查询,插入状态条件
formatted_query = park_query . format ( status_condition = status_condition )
park_search_spot = f " % { spot } % "
await cur . execute ( park_query , ( park_search_spot , ) )
await cur . execute ( formatted _query, ( park_search_spot , ) )
park_rows = await cur . fetchall ( )
# 先查询景区基本信息以获取ID
id_query = " SELECT id FROM cyjcpt_bd.zhly_scenic_basic WHERE `name` LIKE %s LIMIT 1 "
await cur . execute ( id_query , ( search_spot , ) )
@ -378,7 +394,7 @@ async def query_flow(request: Request, spot: str) -> str:
for park_row in park_rows :
# 使用变量名访问停车场数据
park_name , rate_info , total_count , space , distance_value = park_row
result + = f " 停车场名称: { park_name } ,距离: { distance_value } 米,空余车位: { space } ,总车位: { total_count } ,收费标准: { rate_info } 。 "
result + = f " 停车场名称: { park_name } ,距离: { distance_value } 米,空余车位: { space if space is not None else ' 未知 ' } ,总车位: { total_count } ,收费标准: { rate_info if rate_info else ' 暂无收费标准信息 ' } 。 "
else :
result + = " 停车场信息:暂无数据。 "