|
|
@ -625,13 +625,13 @@ async def get_scenic_detail_data(request: Request, id: int) -> dict: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 在chat_service.py末尾添加新的停车场查询函数 |
|
|
|
# 在chat_service.py末尾添加新的停车场查询函数 |
|
|
|
async def get_scenic_parking_data(request: Request, scenic_name: str, distance: int) -> list: |
|
|
|
async def get_scenic_parking_data(request: Request, scenic_id: int, distance: int) -> list: |
|
|
|
""" |
|
|
|
""" |
|
|
|
查询景区附近的停车场信息 |
|
|
|
查询景区附近的停车场信息 |
|
|
|
|
|
|
|
|
|
|
|
Args: |
|
|
|
Args: |
|
|
|
request: FastAPI请求对象 |
|
|
|
request: FastAPI请求对象 |
|
|
|
scenic_name: 景区名称 |
|
|
|
scenic_id: 景区id |
|
|
|
distance: 查询距离(米),>=1000时查询全部 |
|
|
|
distance: 查询距离(米),>=1000时查询全部 |
|
|
|
|
|
|
|
|
|
|
|
Returns: |
|
|
|
Returns: |
|
|
@ -644,32 +644,30 @@ async def get_scenic_parking_data(request: Request, scenic_name: str, distance: |
|
|
|
# 构建基础查询 |
|
|
|
# 构建基础查询 |
|
|
|
base_query = """ |
|
|
|
base_query = """ |
|
|
|
SELECT |
|
|
|
SELECT |
|
|
|
t3.park_name AS park_name, |
|
|
|
t3.park_name AS park_name, |
|
|
|
t3.total_count AS total_parking_spaces, |
|
|
|
t3.total_count AS total_parking_spaces, |
|
|
|
COALESCE(t4.space, 0) AS available_spaces, |
|
|
|
COALESCE(t4.space, 0) AS available_spaces, |
|
|
|
t1.distance_value AS distance_meters |
|
|
|
t1.distance_value AS distance_meters |
|
|
|
FROM |
|
|
|
FROM |
|
|
|
cyjcpt_bd.scenic_pack_distance t1 |
|
|
|
cyjcpt_bd.scenic_pack_distance t1 |
|
|
|
LEFT JOIN |
|
|
|
LEFT JOIN |
|
|
|
cyjcpt_bd.zhly_scenic_basic t2 ON t1.scenic_id = t2.id |
|
|
|
cyjcpt_bd.park_info t3 ON t1.park_code = t3.park_code |
|
|
|
LEFT JOIN |
|
|
|
LEFT JOIN |
|
|
|
cyjcpt_bd.park_info t3 ON t1.park_code = t3.park_code |
|
|
|
equipment_passenger_flow.park_current t4 ON t1.park_code = t4.park_code |
|
|
|
LEFT JOIN |
|
|
|
|
|
|
|
equipment_passenger_flow.park_current t4 ON t1.park_code = t4.park_code |
|
|
|
|
|
|
|
WHERE |
|
|
|
WHERE |
|
|
|
t2.`name` LIKE %s |
|
|
|
t1.scenic_id = %s |
|
|
|
AND t3.total_count > 0 |
|
|
|
AND t3.total_count > 0 |
|
|
|
""" |
|
|
|
""" |
|
|
|
|
|
|
|
|
|
|
|
# 根据距离参数构建WHERE条件 |
|
|
|
# 根据距离参数构建WHERE条件 |
|
|
|
if distance >= 1000: |
|
|
|
if distance >= 1000: |
|
|
|
# 距离>=1000米,查询全部停车场 |
|
|
|
# 距离>=1000米,查询全部停车场 |
|
|
|
where_condition = "" |
|
|
|
where_condition = "" |
|
|
|
params = (f"%{scenic_name}%",) |
|
|
|
params = (scenic_id,) |
|
|
|
else: |
|
|
|
else: |
|
|
|
# 距离<1000米,按指定距离查询 |
|
|
|
# 距离<1000米,按指定距离查询 |
|
|
|
where_condition = " AND t1.distance_value <= %s" |
|
|
|
where_condition = " AND t1.distance_value <= %s" |
|
|
|
params = (f"%{scenic_name}%", distance) |
|
|
|
params = (scenic_id, distance) |
|
|
|
|
|
|
|
|
|
|
|
# 完整的查询语句 |
|
|
|
# 完整的查询语句 |
|
|
|
query = base_query + where_condition + " ORDER BY t1.distance_value ASC" |
|
|
|
query = base_query + where_condition + " ORDER BY t1.distance_value ASC" |
|
|
|