Задача #2041

Адрес возврата курьера

Added by Кочев Алексей over 4 years ago. Updated over 4 years ago.

Status:Обратная связь Start date:02/16/2017
Priority:Нормальный Due date:
Assignee:Кочев Алексей % Done:

0%

Category:-
Target version:5.0.1338.0
Сметная стоимость:0.0

Description

https://jira.iiko.ru/browse/EXTDM-30
Current:
В качестве адреса возврата возвращается адрес коллцентра
Expected:
В качестве адреса возврата возвращается адрес ресторана (адрес местонахождения терминала доставки)

Решение:
Брать адрес у DeliveryTerminalInfo и геокодировать его.

History

Updated by Кочев Алексей over 4 years ago

Так как синхронизация у нас реализована сущностями DeliveryOrderDto (а в нем есть только имя терминала доставки), то при каждом логине курьера теперь вызываем метод API:
https://docs.google.com/document/d/1kuhs94UV_0oUkI2CI3uOsNo_dydmh9Q0MFoDWmhzwxc/edit#bookmark=id.4weq7x2gwvdl
который возвращает список всех терминалов для организации (имена терминалов и их адреса). Т.е. имена должны быть разные при настройке. Инфа по терминалам хранится в runtime, т.е. до закрытия приложения в памяти.

Далее у последнего доставленного заказа берем имя терминала, по нему(имени) выбираем уже подробную текстовую инфу об адресе, загруженную при логине курьера. Адрес геокодируем через Google в координаты и проверяем расстояние между текущей локацией и координатами ресторана возврата. Если менее 50км (настройка hardcode), то считаем координаты возврата валидными и показываем пользователю кнопку "Маршрут обратно".
Имя последнего терминала доставки и его геокодированные координаты записываем в защищенный кэш приложения, доступный после завершения работы приложения. Перед запросом в Google смотрим значение в кэше имени терминала и если оно не менялось, то запрос в Google не делаем, а берем готовые координаты.

Логируем на уровне приложения след.операции:
- запрос/ответ к геосервису Google
- проверка расстояния
- изменение значений последнего терминала в кэше приложения

Если не смогли определить координаты или расстояние более 50 км, то кнопу "Маршрут обратно" не выводим.

Also available in: Atom PDF