Мастер-Тур(15):API для разработки онлайн поиска и бронирования — различия между версиями
| [досмотренная версия] | [досмотренная версия] |
Gavrilov (обсуждение | вклад) (→подтверждения оплаты полиса в ЕВРОИНС.) |
Biryukov (обсуждение | вклад) (→Установка) |
||
| (не показаны 64 промежуточные версии 4 участников) | |||
| Строка 12: | Строка 12: | ||
Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br /> | Для работы с web-сервисом необходимо на отдающей стороне установить [[Мастер-Тур(15):Установка#Установка службы поиска|службу поиска]].<br /> | ||
После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'') | После установки web-сервис будет доступен по адресу ''<nowiki>http://значение настройки "serviceAddress" в TourSearchOwin/"название метода"</nowiki>'' (пример: ''http://localhost:9000/TourSearchOwin/Settings'') | ||
| + | |||
| + | ==Swagger== | ||
| + | Работу методов можно проверить с помощью Swagger по пути: ''http://localhost:9000/TourSearchOwin/SwaggerUI'' | ||
==Список методов== | ==Список методов== | ||
| Строка 17: | Строка 20: | ||
Последовательность вызова методов сервиса<br /> | Последовательность вызова методов сервиса<br /> | ||
[[Файл:mb_273.png|1000px|Последовательность вызова методов сервиса]] | [[Файл:mb_273.png|1000px|Последовательность вызова методов сервиса]] | ||
| + | |||
| + | ===Информация о состоянии службы поиска (statusCache)=== | ||
| + | Метод выводит информацию о состоянии службы поиска при ее загрузке. | ||
| + | * Формат запроса: | ||
| + | ** GET .../TourSearchOwin/statusCache? | ||
| + | * Принимаемые параметры: | ||
| + | ** нет принимаемых параметров | ||
| + | * Возвращаемый результат: | ||
| + | ** '''Initialized''' – информация о том, загружена ли служба или нет ('''false''' – инициализация кешей не завершена, '''true''' – инициализация кешей завершена) | ||
| + | ** '''Status''' – состояние службы. Возможные значения: ''Запущена инициализация кэшей'', ''Инициализация кэшей завершена'' | ||
| + | ** '''CacheName''' – информация о том, какой именно кеш сейчас считается (название) | ||
| + | ** '''Iteration''' – порядковый номер считаемого справочника кеша | ||
| + | ** '''CacheCount''' – общее количество кешей | ||
| + | ** '''ProcessMessage''' – детализация. Информацию можно разделить на 3 блока: | ||
| + | *** Загрузка всех справочных данных, кроме расчета маршрутов и актуальных фильтров. В этом случае сообщение будет ''Загрузка кэшей из БД'' | ||
| + | *** Расчет маршрутов. ''CacheName'' – ''HotelScheme'', сообщение будет ''tours load: 956 / 1234'' | ||
| + | *** Расчет актуальных фильтров. ''CacheName'' – ''ActualFilters'', сообщение будет ''Actual filter processed: 783012 / 3865687"'' | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| + | <div class="mw-collapsible-content"> | ||
| + | <TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD> | ||
| + | Вызов метода Settings | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | GET http://localhost:9000/TourSearchOwin/statusCache | ||
| + | </syntaxhighlight> | ||
| + | Возвращаемый результат метода statusCache (в формате JSON) | ||
| + | <syntaxhighlight lang="java" enclose="div"> | ||
| + | { | ||
| + | "Initialized": false, | ||
| + | "Status": "Запущена инициализация кэшей", | ||
| + | "CacheName": "ToursSearchView", | ||
| + | "Iteration": 10, | ||
| + | "CacheCount": 112, | ||
| + | "ProcessMessage": "Загрузка кэшей из БД" | ||
| + | } | ||
| + | { | ||
| + | "Initialized": false, | ||
| + | "Status": "Запущена инициализация кэшей", | ||
| + | "CacheName": "HotelScheme", | ||
| + | "Iteration": 109, | ||
| + | "CacheCount": 112, | ||
| + | "ProcessMessage": "tours load: 956 / 1234" | ||
| + | } | ||
| + | { | ||
| + | "Initialized": false, | ||
| + | "Status": "Запущена инициализация кэшей", | ||
| + | "CacheName": "ActualFilters", | ||
| + | "Iteration": 112, | ||
| + | "CacheCount": 112, | ||
| + | "ProcessMessage": "Actual filter processed: 783012 / 3865687" | ||
| + | } | ||
| + | { | ||
| + | "Initialized": true, | ||
| + | "Status": "Инициализация кэшей завершена", | ||
| + | "CacheName": null, | ||
| + | "Iteration": 0, | ||
| + | "CacheCount": 0, | ||
| + | "ProcessMessage": null | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | </TD></TR></TABLE> | ||
| + | </div></div><br /> | ||
===Авторизация (Token)=== | ===Авторизация (Token)=== | ||
| Строка 105: | Строка 170: | ||
*** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован" | *** ''<add key="enableActualFilters" value="true" />'' - CacheReady: true = CacheReadyMessage: "Кеш инициализирован"; CacheReady: false = CacheReadyMessage: "Кеш еще не инициализирован" | ||
*** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован". | *** ''<add key="enableActualFilters" value="false" />'' - Служба актуальных фильтров недоступна (выключена, неверно указана ссылка на нее и т.п.) CacheReadyMessage: "Служба актуальных фильтров недоступна"; Служба актуальных фильтров доступна но не готова - CacheReadyMessage: "Кеш службы актуальных фильтров не инициализирован"; Служба актуальных фильтров готова, а основная служба не готова - CacheReadyMessage: "Кеш ещё не инициализирован"; Служба актуальных фильтров готова, и основная служба готова - CacheReadyMessage: "Кеш ещё инициализирован". | ||
| − | + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | |
| + | ** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null) | ||
| + | ** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null) | ||
| + | ** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null) | ||
| + | ** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null) | ||
| + | ** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null) | ||
| + | ** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null) | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
| Строка 182: | Строка 253: | ||
"ShowHotelImagesInSearch": true | "ShowHotelImagesInSearch": true | ||
"CacheReadyMessage": "Кеш инициализирован" | "CacheReadyMessage": "Кеш инициализирован" | ||
| + | "nodeId": 2147483647, | ||
| + | "FullPaymentPeriod": null, | ||
| + | "FullPaymentCheckin": 5, | ||
| + | "PrePaymentPeriod": null, | ||
| + | "PrePaymentCheckin": 10, | ||
| + | "PrePaymentPercent": 50.0, | ||
| + | "PrePaymentCu": null | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</TD></TR></TABLE> | </TD></TR></TABLE> | ||
</div></div><br /> | </div></div><br /> | ||
| − | |||
===Выгрузка списка валют в онлайне (Currency)=== | ===Выгрузка списка валют в онлайне (Currency)=== | ||
| Строка 257: | Строка 334: | ||
** GET .../TourSearchOwin/CurrencyRates | ** GET .../TourSearchOwin/CurrencyRates | ||
* Принимаемые параметры: | * Принимаемые параметры: | ||
| − | ** | + | ** '''dateFrom''' – начальная дата, от которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день) |
| + | ** '''dateTo''' – конечная дата, до которой вывести список курсов валют, в формате DD.MM.YYYY, необязательный параметр (если не указан, берется за текущий день) | ||
| + | ** '''otherBaseCurrencyId''' – идентификатор любой валюты, эмулирующей работу национальной валюты, необязательный параметр. Если заполнен, то в результатах выдачи параметр ''baseCurrencyId'' будет заменяться на валюту из параметра ''otherBaseCurrencyId'' (обрабатывается с релиза 15.9). | ||
| + | |||
* Возвращаемый результат: | * Возвращаемый результат: | ||
** '''baseCurrencyId''' – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке ''basketCurrency'' в конфигурационном файле (обрабатывается с релиза 15.6) | ** '''baseCurrencyId''' – идентификатор национальной валюты, либо произвольной валюты, указанной в настройке ''basketCurrency'' в конфигурационном файле (обрабатывается с релиза 15.6) | ||
** '''currencyId''' – идентификатор валюты, курс которой приводится | ** '''currencyId''' – идентификатор валюты, курс которой приводится | ||
** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''') | ** '''rate''' – курс валюты (отношение '''currencyId''' к '''baseCurrencyId''') | ||
| + | ** '''date''' – дата, на которую был зарегистрирован выводимый курс валюты | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 268: | Строка 349: | ||
Вызов метода CurrencyRates | Вызов метода CurrencyRates | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | http://localhost:9000/TourSearchOwin/CurrencyRates | + | http://localhost:9000/TourSearchOwin/CurrencyRates?dateFrom=18.09.2024&dateTo=19.09.2024 |
</syntaxhighlight> | </syntaxhighlight> | ||
Возвращаемый результат метода CurrencyRates (в формате JSON) | Возвращаемый результат метода CurrencyRates (в формате JSON) | ||
<syntaxhighlight lang="java" enclose="div"> | <syntaxhighlight lang="java" enclose="div"> | ||
| − | { | + | [ |
| − | + | { | |
| − | + | "BaseCurrencyId": 14, | |
| − | + | "CurrencyId": 1, | |
| − | + | "Rate": 91.429200, | |
| − | + | "Date": "18.09.2024" | |
| − | + | }, | |
| − | + | { | |
| − | + | "BaseCurrencyId": 14, | |
| − | + | "CurrencyId": 2, | |
| − | + | "Rate": 101.505700, | |
| − | + | "Date": "18.09.2024" | |
| − | + | }, | |
| − | + | { | |
| − | + | "BaseCurrencyId": 14, | |
| + | "CurrencyId": 1, | ||
| + | "Rate": 91.671200, | ||
| + | "Date": "19.09.2024" | ||
| + | }, | ||
| + | { | ||
| + | "BaseCurrencyId": 14, | ||
| + | "CurrencyId": 2, | ||
| + | "Rate": 102.039000, | ||
| + | "Date": "19.09.2024" | ||
| + | } | ||
| + | ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 508: | Строка 600: | ||
** '''Name''' – название страны | ** '''Name''' – название страны | ||
** '''Key''' – идентификатор страны | ** '''Key''' – идентификатор страны | ||
| − | ** '''DestinationType''' – тип результата (параметр не изменяемый, | + | ** '''DestinationType''' – тип результата (внутренний параметр, не изменяемый, всегда возвращается значение = 1) |
** '''IsExist''' – не используется | ** '''IsExist''' – не используется | ||
** '''Data''' – массив данных для контекстного поиска | ** '''Data''' – массив данных для контекстного поиска | ||
| Строка 690: | Строка 782: | ||
** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ** '''departureCityKeys *''' – идентификатор города(ов) отправления (полученный из метода ''.../TourSearchOwin/departureCities?'') | ||
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
| − | ** '''Type *''' – тип результата (всегда | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ||
** '''terms''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ** '''terms''' – фильтрация результатов по контекстному поиску (по умолчанию параметр пустой) | ||
| Строка 696: | Строка 788: | ||
** '''Key''' – идентификатор типа тура | ** '''Key''' – идентификатор типа тура | ||
** '''Name''' – название типа тура | ** '''Name''' – название типа тура | ||
| − | ** '''ParentId''' – идентификатор группы, к которой относится данный | + | ** '''ParentId''' – идентификатор группы, к которой относится данный тип тура (если тип тура не относится к группе, то возвращается ''null'') |
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 736: | Строка 828: | ||
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ||
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
| − | ** '''Type *''' – тип результата (всегда | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''tourTypes *''' – идентификатор типа тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ** '''tourTypes *''' – идентификатор типа тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ||
* Возвращаемый результат: | * Возвращаемый результат: | ||
| Строка 772: | Строка 864: | ||
** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ** '''destinationCity *''' – идентификатор города(ов) прибытия (полученный из метода ''.../TourSearchOwin/ActualizeCities?''), по умолчанию передается ''-1'', то есть все города в рамках данной страны | ||
** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''Key *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
| − | ** '''Type *''' – тип результата (всегда | + | ** '''Type *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''tourDate *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ** '''tourDate *''' – массив дат заезда (полученные из метода ''.../TourSearchOwin/TourDate?''). Если параметры передаются через url, то каждое значение необходимо передавать отдельным параметром. | ||
** '''tourTypes *''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ** '''tourTypes *''' – идентификатор типа(ов) тура (полученный из метода ''.../TourSearchOwin/ActualizeTourType?''), по умолчанию передается ''-1'', то есть все типы тура в рамках данной страны | ||
| Строка 812: | Строка 904: | ||
** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false) | ** '''isFromBasket *''' – происходит ли обращение из корзины или из поиска туров (true/false) | ||
** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. | ** '''isFillSecondaryFilters''' – заполнены ли дополнительные фильтры (по умолчанию всегда приходит true). Служебный внутренний параметр. При работе с API не используется. | ||
| − | ** '''DestinationType *''' – тип результата (параметр не изменяемый, | + | ** '''DestinationType *''' – тип результата (внутренний параметр, не изменяемый, всегда указывать значение = 1) |
** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ** '''DestinationKey *''' – идентификатор страны прибытия (полученный из метода ''.../TourSearchOwin/Destination?'') | ||
** '''AdultCount *''' – количество взрослых | ** '''AdultCount *''' – количество взрослых | ||
| Строка 824: | Строка 916: | ||
** '''Groups''' – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля) | ** '''Groups''' – группировка результатов (2 – по названию тура, 4 – по дате тура, 8 – по продолжительности тура, 16 – по городу вылета, 32 – по отелю, 64 – по городу отеля, 128 – по курорту отеля, 256 – по категории отеля) | ||
** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры: | ** '''HotelScheme''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля. Передаются следующие параметры: | ||
| − | *** '''TemplateId''' – идентификатор шаблона услуги, | + | *** '''TemplateId''' – идентификатор шаблона услуги (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Key->TemplateId), |
| − | *** '''DurationInNight''' – продолжительность отеля в ночах, | + | *** '''DurationInNight''' – продолжительность отеля в ночах (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->DurationInNight), |
| − | *** '''Code''' – ключ отеля, | + | *** '''Code''' – ключ отеля (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->Code), |
| − | *** '''PacketKey''' – ключ пакета, | + | *** '''PacketKey''' – ключ пакета (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PacketId), |
| − | *** '''PartnerKey''' – ключ партнера | + | *** '''PartnerKey''' – ключ партнера (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->PartnerId), |
| − | *** '''GDSProviderId''' – ключ провайдера из внешней системы | + | *** '''GDSProviderId''' – ключ провайдера из внешней системы (этот параметр можно взять из контроллера Tour->Result->MinCostServicesComposition->Value->GDSProviderId), |
| − | *** '''TotalTourDuration''' – общая продолжительность тура в днях | + | *** '''TotalTourDuration''' – общая продолжительность тура в днях (этот параметр можно взять из контроллера Tour->Result->Duration) |
** '''BusTransferPointKeys''' – данный признак проставляется в ''true'' в том случае, когда происходит запрос вариантов проживания (кнопка ''Варианты'') в автобусных переездах | ** '''BusTransferPointKeys''' – данный признак проставляется в ''true'' в том случае, когда происходит запрос вариантов проживания (кнопка ''Варианты'') в автобусных переездах | ||
** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | ** '''TourKey''' – пустой по умолчанию. Заполняется при вызове вариантов размещений в рамках одного отеля: ключ программы тура | ||
| Строка 865: | Строка 957: | ||
** '''IsGroupingTourAlreadyMerge''' – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. ''IsGroupingTourAlreadyMerge=false'' – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. ''IsGroupingTourAlreadyMerge=true'' – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4. | ** '''IsGroupingTourAlreadyMerge''' – определяет слияние данных турпрограмм от локальной системы с данными от внешней системы при использовании группировки. Примеры использования. ''IsGroupingTourAlreadyMerge=false'' – полученные данные от локальной системы не объединены с данными от внешней системы. На клиенте осуществляется объединение данных турпрограмм с последующей сортировкой по минимальной цене. ''IsGroupingTourAlreadyMerge=true'' – полученные данные от локальной системы уже объединены с данными от внешней системы. На клиенте осуществляется только сортировка по минимальной цене. Обрабатывается начиная с релиза 15.4. | ||
** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5. | ** '''SearchId''' – уникальный идентификатор запроса поиска, передаваемый с клиентской части. Возвращается в ответе без изменений. Обрабатывается начиная с релиза 15.5. | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
| Строка 877: | Строка 970: | ||
*** '''TourUrl''' – ссылка на программу тура | *** '''TourUrl''' – ссылка на программу тура | ||
*** '''BookingConditions''' – условия бронирования программы туров | *** '''BookingConditions''' – условия бронирования программы туров | ||
| + | *** '''DefaultManagers''' – список выбранных менеджеров в туре | ||
| + | *** '''Manager''' – ключ менеджера по умолчанию в туре | ||
| + | *** '''Branches''' – список ключей филиалов бронирования | ||
| + | *** '''DetermineTheBranchOnCity''' – признак, определять филиал в зависимости от города начала поездки | ||
| + | *** '''IndividualFlightSelection''' – признак, включены ли индивидуальные настройки подбора перелетов | ||
| + | *** '''RestrictionDateArrival''' – признак, ограничение даты прилета по базовому рейсу в индивидуальных настройках подбора перелетов | ||
| + | *** '''PriceUpdateForView''' – признак обновления цен в индивидуальных настройках подбора перелетов (true – включен, false – выключен) | ||
| + | *** '''SelectFlightAutomatically''' – признак выбирать рейс автоматически, если не выбран пользователем в индивидуальных настройках подбора перелетов | ||
| + | *** '''BaggageSearchOtherFares''' – признак поиска багажа в других тарифах в индивидуальных настройках подбора перелетов | ||
| + | *** '''Luggage''' – значение багажа в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''LuggageForView''' – значение багажа в блоке настроек, влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''LuggageForPrice''' – значение багажа в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, withLuggage – багаж и ручная кладь, withoutLuggage – без багажа) | ||
| + | *** '''FlightClass''' – класс перелета в индивидуальных настройках подбора перелетов (economy – Эконом, premiumEconomy 2 Премиум-эконом, business – Бизнес, first – Первый) | ||
| + | *** '''Directs''' – значение пересадок в блоке настроек, влияющих на формирование запроса в индивидуальных настройках подбора перелетов (all – все, onlyDirectFlights – только прямые рейсы) | ||
| + | *** '''DirectsForView''' – значение пересадок в блоке влияющих на отображение информации в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | ||
| + | *** '''DirectsForPrice''' – значение пересадок в блоке фильтров для обновления цен в индивидуальных настройках подбора перелетов (all – все, без пересадок – withoutDirect, с 1 пересадкой – oneDirect, с 2 пересадками и более – twoOrMoreDirect) | ||
| + | *** '''DepartureTimeLimit''' – ограничение времени вылета: «Вылет не позже» в формате hh:mm | ||
| + | *** '''SortingForView''' – сортировка в индивидуальных настройках подбора перелетов (cheap – сначала дешевые, fast – сначала быстрые, optimal – оптимальные) | ||
*** '''StartDate''' – дата начала тура | *** '''StartDate''' – дата начала тура | ||
| + | *** '''MaxConnectionTime''' – длительность пересадок в индивидуальных настройках подбора перелетов в формате hh:mm | ||
| + | *** '''FullPaymentPeriod''' – полная оплата с даты бронирования (может быть null) | ||
| + | *** '''FullPaymentCheckin''' – полная оплата до даты заезда (может быть null) | ||
| + | *** '''PrePaymentPeriod''' – предоплата с даты бронирования (может быть null) | ||
| + | *** '''PrePaymentCheckin''' – предоплата до даты заезда (может быть null) | ||
| + | *** '''PrePaymentCu"''' – значение предоплаты в y.e. (может быть null) | ||
| + | *** '''PrePaymentPercent''' – значение предоплаты в процентах (может быть null) | ||
*** '''Duration''' – продолжительность тура (в днях) | *** '''Duration''' – продолжительность тура (в днях) | ||
*** '''DurationInNight''' – продолжительность проживания (в ночах) | *** '''DurationInNight''' – продолжительность проживания (в ночах) | ||
*** '''Types''' – идентификатор типа туров | *** '''Types''' – идентификатор типа туров | ||
| − | *** '''Cost''' – цена тура | + | *** '''Price''' – цена тура с учетом скидки в валюте поиска |
| + | *** '''Cost''' – цена тура в валюте поиска | ||
*** '''Rate''' – код валюты тура | *** '''Rate''' – код валюты тура | ||
| + | *** '''Penalties''' – внутреннее поле, не используется | ||
*** '''CityDepature''' – город отправления | *** '''CityDepature''' – город отправления | ||
**** '''Key''' – идентификатор города отправления | **** '''Key''' – идентификатор города отправления | ||
| Строка 956: | Строка 1076: | ||
***** '''Key''' – ключ города | ***** '''Key''' – ключ города | ||
***** '''Value''' – название города | ***** '''Value''' – название города | ||
| − | **** '''Country''' – ключ страны | + | **** '''Country''' – объект страна |
| + | ***** '''Key''' – ключ страны | ||
| + | ***** '''Value''' – название страны | ||
**** '''Code''' – объект код услуги | **** '''Code''' – объект код услуги | ||
***** '''Key''' – ключ услуги | ***** '''Key''' – ключ услуги | ||
| Строка 1062: | Строка 1184: | ||
***** '''enabled''' – флаг включен/выключен | ***** '''enabled''' – флаг включен/выключен | ||
*** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | *** '''RouteSubVariants''' – подварианты услуг (используется в основном поиске) | ||
| + | *** '''Routes''' – количество маршрутов для данного варианта поиска (к примеру, если будет несколько вариантов | ||
| + | *** '''IsRemoteHotels''' – признак, есть ли внешние отели в данном варианте | ||
| + | *** '''IsTourImages''' – признак, есть ли картинки тура | ||
| + | *** '''MaskKeys''' – маска фильтра категории номеров | ||
** '''SecondaryFiltersResult''' – результаты доп. фильтров | ** '''SecondaryFiltersResult''' – результаты доп. фильтров | ||
*** '''TourTypes''' – типы тура | *** '''TourTypes''' – типы тура | ||
| Строка 1139: | Строка 1265: | ||
**** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | **** '''HotelTypes''' – признаки отелей в дополнительных фильтрах | ||
***** '''''' – | ***** '''''' – | ||
| + | ** '''nodeId''' – уникальный идентификатор узла в кластере балансировки нагрузки [[Мастер-Тур(15):Балансировщик нагрузки HaProxy|HaProxy]] | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | <div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример | ||
| Строка 1166: | Строка 1293: | ||
"TourUrl": "www.megatec.ru", | "TourUrl": "www.megatec.ru", | ||
"BookingConditions": "<p>Условия бронирования тура.<\/p>", | "BookingConditions": "<p>Условия бронирования тура.<\/p>", | ||
| + | "DefaultManagers": [], | ||
| + | "Manager": 169, | ||
| + | "Branches": [], | ||
| + | "DetermineTheBranchOnCity": false, | ||
| + | "IndividualFlightSelection": true, | ||
| + | "RestrictionDateArrival": false, | ||
| + | "PriceUpdateForView": false, | ||
| + | "SelectFlightAutomatically": false, | ||
| + | "BaggageSearchOtherFares": false, | ||
| + | "Luggage": "withoutLuggage", | ||
| + | "LuggageForView": "all", | ||
| + | "LuggageForPrice": "all", | ||
| + | "FlightClass": "economy", | ||
| + | "Directs": "all", | ||
| + | "DirectsForView": "all", | ||
| + | "DirectsForPrice": "all", | ||
| + | "DepartureTimeLimit": "", | ||
| + | "SortingForView": "cheap", | ||
"StartDate": "2018-02-25T00:00:00", | "StartDate": "2018-02-25T00:00:00", | ||
| + | "MaxConnectionTime": 0 | ||
| + | "FullPaymentPeriod": 5, | ||
| + | "FullPaymentCheckin": null, | ||
| + | "PrePaymentPeriod": null, | ||
| + | "PrePaymentCheckin": 5, | ||
| + | "PrePaymentCu": null, | ||
| + | "PrePaymentPercent": 10.0, | ||
"Duration": 4, | "Duration": 4, | ||
"DurationInNight": 3, | "DurationInNight": 3, | ||
"Types": [2], | "Types": [2], | ||
| + | "Price": 260, | ||
"Cost": 260, | "Cost": 260, | ||
| + | "Penalties": null, | ||
"Rate": "EU", | "Rate": "EU", | ||
"CityDepature": { | "CityDepature": { | ||
| Строка 1301: | Строка 1455: | ||
"Value": "Завтрак" | "Value": "Завтрак" | ||
}, | |||