|
|
@@ -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** |
|
|
|
|
|
|
|