Browse Source

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

master
ushmodin 2 years ago
parent
commit
d6d3914b1b
1 changed files with 26 additions and 3 deletions
  1. +26
    -3
      transit.md

+ 26
- 3
transit.md View File

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



Loading…
Cancel
Save