Уточнение к Transit.getTripInfo

master
ushmodin преди 6 години
родител 04a7ab39c9
ревизия d6d3914b1b

@ -1,9 +1,9 @@
Спецификация протокола взаимной продажи билетов на транзиные рейсы
===========================================================================
**Версия документа: 1.0**
**Версия документа: 1.1**
**Дата изменения: 06.09.2017**
**Дата изменения: 13.09.2018**
Введение
========
@ -326,7 +326,30 @@ XML-ответ в обязательном порядке имеет корне
### getTripInfo
Возвращет информацию билетах на указанном рейсе.
В выборку должны попасть билеты у которых станции отправлени или назначения(не включительно) находятся между запрашиваемы станциями.
В выборку должны попасть билеты по следующему алгоритму.
```
from_st_uid = request.dispatchStationUid
to_st_uid = request.arrivalStationUid
indexs = словарь (UID станции) -> (Индекс станции в маршруте)
from_st_index = indexs(from_st_uid)
to_st_index = indexs(to_st_uid)
select *
from tickets t
where max(indexs(t.from_st_uid), from_st_index) <= min(indexs(t.to_st_uid), to_st_index)
and t.to_st_uid <> from_st_uid
```
В выборки первое условие находит пересечения отрезков:
1. первый отрезок получен из индексов станций отправления и назначения билета
2. второй отрезок получен из индексов станций параметров запроса
Второе условие отсекает билеты у которых станция назначения совпадает с станцией отправления из парамеров.
**URL: \[BASE\_URL\]/transit/getTripInfo**

Зареждане…
Отказ
Запис