Spaces:
Sleeping
Sleeping
OnlyBiggg
commited on
Commit
·
53e9f0b
1
Parent(s):
43e4baf
fix
Browse files
app/dialogflow/api/v1/dialogflow.py
CHANGED
|
@@ -308,13 +308,10 @@ async def get_trip_list(request: Request) -> Response:
|
|
| 308 |
if len(data) > 0:
|
| 309 |
################################## bug choox nay
|
| 310 |
|
| 311 |
-
|
| 312 |
-
origin_id = origin_ids
|
| 313 |
-
if dest_office:
|
| 314 |
-
dest_id = dest_ids
|
| 315 |
|
| 316 |
## Chưa tìm được
|
| 317 |
-
trip_by_time_office = dialog_service.get_trip_by_time_and_office_id(data, time,
|
| 318 |
# Nếu có chuyến xe theo thời gian và văn phòng chỉ định
|
| 319 |
if trip_by_time_office:
|
| 320 |
print(trip_by_time_office)
|
|
@@ -327,11 +324,11 @@ async def get_trip_list(request: Request) -> Response:
|
|
| 327 |
|
| 328 |
# Danh sách chuyến xe khớp với văn phòng đón hoặc văn phòng trả
|
| 329 |
if origin_office and dest_office:
|
| 330 |
-
data_by_office = dialog_service.get_all_trip_by_office(data,
|
| 331 |
elif origin_office:
|
| 332 |
-
data_by_office = dialog_service.get_all_trip_by_office(data,origin_id=
|
| 333 |
elif dest_office:
|
| 334 |
-
data_by_office = dialog_service.get_all_trip_by_office(data, dest_id=
|
| 335 |
else:
|
| 336 |
data_by_office = data
|
| 337 |
# Tìm 4 chuyến xe gần thời gian chỉ định nhất
|
|
|
|
| 308 |
if len(data) > 0:
|
| 309 |
################################## bug choox nay
|
| 310 |
|
| 311 |
+
if origin_office and dest_office:
|
|
|
|
|
|
|
|
|
|
| 312 |
|
| 313 |
## Chưa tìm được
|
| 314 |
+
trip_by_time_office = dialog_service.get_trip_by_time_and_office_id(data, time, origin_ids, dest_ids)
|
| 315 |
# Nếu có chuyến xe theo thời gian và văn phòng chỉ định
|
| 316 |
if trip_by_time_office:
|
| 317 |
print(trip_by_time_office)
|
|
|
|
| 324 |
|
| 325 |
# Danh sách chuyến xe khớp với văn phòng đón hoặc văn phòng trả
|
| 326 |
if origin_office and dest_office:
|
| 327 |
+
data_by_office = dialog_service.get_all_trip_by_office(data, origin_ids, dest_ids)
|
| 328 |
elif origin_office:
|
| 329 |
+
data_by_office = dialog_service.get_all_trip_by_office(data,origin_id=origin_ids)
|
| 330 |
elif dest_office:
|
| 331 |
+
data_by_office = dialog_service.get_all_trip_by_office(data, dest_id=dest_ids)
|
| 332 |
else:
|
| 333 |
data_by_office = data
|
| 334 |
# Tìm 4 chuyến xe gần thời gian chỉ định nhất
|
app/dialogflow/services/dialog_service.py
CHANGED
|
@@ -140,17 +140,25 @@ class DialogService:
|
|
| 140 |
|
| 141 |
result = []
|
| 142 |
for trip in trips:
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
# Danh sách 4 chuyến đi xung quanh thời gian chỉ định
|
| 155 |
@staticmethod
|
| 156 |
def get_4_surrounding_trip(trips: list, time: str) -> list:
|
|
@@ -224,7 +232,8 @@ class DialogService:
|
|
| 224 |
return False
|
| 225 |
pickup_list = await self.pickup_list(route_id, way_id)
|
| 226 |
for pickup_data in pickup_list:
|
| 227 |
-
|
|
|
|
| 228 |
return True
|
| 229 |
return False
|
| 230 |
|
|
@@ -278,8 +287,8 @@ class DialogService:
|
|
| 278 |
groups = origin["group"]
|
| 279 |
for group in groups:
|
| 280 |
if group.get("name"):
|
| 281 |
-
name = group["name"]
|
| 282 |
-
if name == office_name:
|
| 283 |
office_id = group["officeId"]
|
| 284 |
office_id = office_id[0] if isinstance(office_id, tuple) else office_id
|
| 285 |
return office_id
|
|
@@ -294,9 +303,10 @@ class DialogService:
|
|
| 294 |
groups = origin["group"]
|
| 295 |
for group in groups:
|
| 296 |
if group.get("name"):
|
| 297 |
-
name = group["name"]
|
| 298 |
-
if name == office_name:
|
| 299 |
-
|
|
|
|
| 300 |
return None
|
| 301 |
|
| 302 |
async def find_all_origin_by_name_office(self, office_name: str):
|
|
@@ -315,8 +325,8 @@ class DialogService:
|
|
| 315 |
groups = origin["group"]
|
| 316 |
for group in groups:
|
| 317 |
if group.get("name"):
|
| 318 |
-
name = group["name"]
|
| 319 |
-
if name == office_name:
|
| 320 |
province_id = group["provinceId"]
|
| 321 |
province_code = group["provinceCode"]
|
| 322 |
province_id = province_id[0] if isinstance(province_id, tuple) else province_id
|
|
@@ -332,8 +342,8 @@ class DialogService:
|
|
| 332 |
groups = origin["group"]
|
| 333 |
for group in groups:
|
| 334 |
if group.get("name"):
|
| 335 |
-
name = group["name"]
|
| 336 |
-
if name == origin_office:
|
| 337 |
return group["provinceName"]
|
| 338 |
return None
|
| 339 |
|
|
@@ -346,8 +356,8 @@ class DialogService:
|
|
| 346 |
groups = dest["group"]
|
| 347 |
for group in groups:
|
| 348 |
if group.get("name"):
|
| 349 |
-
name = group["name"]
|
| 350 |
-
if name == dest_office:
|
| 351 |
return group["provinceName"]
|
| 352 |
return None
|
| 353 |
|
|
|
|
| 140 |
|
| 141 |
result = []
|
| 142 |
for trip in trips:
|
| 143 |
+
pickup_points = trip.get("pickup_points", [])
|
| 144 |
+
pickup_point_ids = {p["OfficeId"] for p in pickup_points if "OfficeId" in p}
|
| 145 |
+
|
| 146 |
+
origin_match = (
|
| 147 |
+
(origin_id is None) or
|
| 148 |
+
(trip["route"]["origin_hub_office_id"] == origin_id) or
|
| 149 |
+
(origin_id in pickup_point_ids)
|
| 150 |
+
)
|
| 151 |
+
|
| 152 |
+
dest_match = (
|
| 153 |
+
(dest_id is None) or
|
| 154 |
+
(trip["route"]["dest_hub_office_id"] == dest_id) or
|
| 155 |
+
(dest_id in pickup_point_ids)
|
| 156 |
+
)
|
| 157 |
+
|
| 158 |
+
if origin_match and dest_match:
|
| 159 |
+
result.append(trip)
|
| 160 |
+
|
| 161 |
+
return result if result else trips
|
| 162 |
# Danh sách 4 chuyến đi xung quanh thời gian chỉ định
|
| 163 |
@staticmethod
|
| 164 |
def get_4_surrounding_trip(trips: list, time: str) -> list:
|
|
|
|
| 232 |
return False
|
| 233 |
pickup_list = await self.pickup_list(route_id, way_id)
|
| 234 |
for pickup_data in pickup_list:
|
| 235 |
+
pickup_name: str = pickup_data['name']
|
| 236 |
+
if pickup_name.lower() == pickup.lower():
|
| 237 |
return True
|
| 238 |
return False
|
| 239 |
|
|
|
|
| 287 |
groups = origin["group"]
|
| 288 |
for group in groups:
|
| 289 |
if group.get("name"):
|
| 290 |
+
name: str = group["name"]
|
| 291 |
+
if name.lower() == office_name.lower():
|
| 292 |
office_id = group["officeId"]
|
| 293 |
office_id = office_id[0] if isinstance(office_id, tuple) else office_id
|
| 294 |
return office_id
|
|
|
|
| 303 |
groups = origin["group"]
|
| 304 |
for group in groups:
|
| 305 |
if group.get("name"):
|
| 306 |
+
name: str = group["name"]
|
| 307 |
+
if name.lower() == office_name.lower():
|
| 308 |
+
province_id = group["provinceId"]
|
| 309 |
+
return province_id
|
| 310 |
return None
|
| 311 |
|
| 312 |
async def find_all_origin_by_name_office(self, office_name: str):
|
|
|
|
| 325 |
groups = origin["group"]
|
| 326 |
for group in groups:
|
| 327 |
if group.get("name"):
|
| 328 |
+
name: str = group["name"]
|
| 329 |
+
if name.lower() == office_name.lower():
|
| 330 |
province_id = group["provinceId"]
|
| 331 |
province_code = group["provinceCode"]
|
| 332 |
province_id = province_id[0] if isinstance(province_id, tuple) else province_id
|
|
|
|
| 342 |
groups = origin["group"]
|
| 343 |
for group in groups:
|
| 344 |
if group.get("name"):
|
| 345 |
+
name:str = group["name"]
|
| 346 |
+
if name.lower() == origin_office.lower():
|
| 347 |
return group["provinceName"]
|
| 348 |
return None
|
| 349 |
|
|
|
|
| 356 |
groups = dest["group"]
|
| 357 |
for group in groups:
|
| 358 |
if group.get("name"):
|
| 359 |
+
name: str = group["name"]
|
| 360 |
+
if name.lower() == dest_office.lower():
|
| 361 |
return group["provinceName"]
|
| 362 |
return None
|
| 363 |
|