add new scheme
This commit is contained in:
16
.idea/.gitignore
generated
vendored
16
.idea/.gitignore
generated
vendored
@@ -1,8 +1,8 @@
|
|||||||
# Default ignored files
|
# Default ignored files
|
||||||
/shelf/
|
/shelf/
|
||||||
/workspace.xml
|
/workspace.xml
|
||||||
# Editor-based HTTP Client requests
|
# Editor-based HTTP Client requests
|
||||||
/httpRequests/
|
/httpRequests/
|
||||||
# Datasource local storage ignored files
|
# Datasource local storage ignored files
|
||||||
/dataSources/
|
/dataSources/
|
||||||
/dataSources.local.xml
|
/dataSources.local.xml
|
||||||
|
|||||||
14
.idea/modules.xml
generated
14
.idea/modules.xml
generated
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/plantUML.iml" filepath="$PROJECT_DIR$/.idea/plantUML.iml" />
|
<module fileurl="file://$PROJECT_DIR$/.idea/plantUML.iml" filepath="$PROJECT_DIR$/.idea/plantUML.iml" />
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
36
.idea/php.xml
generated
36
.idea/php.xml
generated
@@ -1,19 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="MessDetectorOptionsConfiguration">
|
<component name="MessDetectorOptionsConfiguration">
|
||||||
<option name="transferred" value="true" />
|
<option name="transferred" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PHPCSFixerOptionsConfiguration">
|
<component name="PHPCSFixerOptionsConfiguration">
|
||||||
<option name="transferred" value="true" />
|
<option name="transferred" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PHPCodeSnifferOptionsConfiguration">
|
<component name="PHPCodeSnifferOptionsConfiguration">
|
||||||
<option name="highlightLevel" value="WARNING" />
|
<option name="highlightLevel" value="WARNING" />
|
||||||
<option name="transferred" value="true" />
|
<option name="transferred" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PhpStanOptionsConfiguration">
|
<component name="PhpStanOptionsConfiguration">
|
||||||
<option name="transferred" value="true" />
|
<option name="transferred" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PsalmOptionsConfiguration">
|
<component name="PsalmOptionsConfiguration">
|
||||||
<option name="transferred" value="true" />
|
<option name="transferred" value="true" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
14
.idea/plantUML.iml
generated
14
.idea/plantUML.iml
generated
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module type="WEB_MODULE" version="4">
|
<module type="WEB_MODULE" version="4">
|
||||||
<component name="NewModuleRootManager">
|
<component name="NewModuleRootManager">
|
||||||
<content url="file://$MODULE_DIR$" />
|
<content url="file://$MODULE_DIR$" />
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
10
.idea/vcs.xml
generated
10
.idea/vcs.xml
generated
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,46 +1,46 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe "FRQ-1 Заказ.ПолучениеДанных."
|
mainframe "FRQ-1 Заказ.ПолучениеДанных."
|
||||||
Actor USER
|
Actor USER
|
||||||
participant SITE
|
participant SITE
|
||||||
participant WTIS
|
participant WTIS
|
||||||
queue Название_топика_1
|
queue Название_топика_1
|
||||||
queue Название_топика_2
|
queue Название_топика_2
|
||||||
participant OMS
|
participant OMS
|
||||||
participant Officer
|
participant Officer
|
||||||
|
|
||||||
|
|
||||||
autonumber 1
|
autonumber 1
|
||||||
USER -> USER: Создает заказ на сайте
|
USER -> USER: Создает заказ на сайте
|
||||||
USER -> SITE: Сущность "Заказ"\nс набором атрибутов
|
USER -> SITE: Сущность "Заказ"\nс набором атрибутов
|
||||||
SITE -> WTIS: Сущность "Заказ"\nс набором атрибутов
|
SITE -> WTIS: Сущность "Заказ"\nс набором атрибутов
|
||||||
WTIS -> WTIS: Проверка условий\nи отбор заказов
|
WTIS -> WTIS: Проверка условий\nи отбор заказов
|
||||||
WTIS -> Название_топика_1: Записывает Сущность\n"Заказ" с набором\nатрибутов
|
WTIS -> Название_топика_1: Записывает Сущность\n"Заказ" с набором\nатрибутов
|
||||||
OMS -> Название_топика_1: Читает Сущность\n"Заказ" с набором\nатрибутов
|
OMS -> Название_топика_1: Читает Сущность\n"Заказ" с набором\nатрибутов
|
||||||
OMS -> OMS: Валидация КА
|
OMS -> OMS: Валидация КА
|
||||||
autonumber 7.1
|
autonumber 7.1
|
||||||
alt валидация пройдена
|
alt валидация пройдена
|
||||||
OMS -> OMS: Продолжение сценария
|
OMS -> OMS: Продолжение сценария
|
||||||
else валидация не пройдена
|
else валидация не пройдена
|
||||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||||
end
|
end
|
||||||
autonumber 8
|
autonumber 8
|
||||||
OMS <-> Officer: Получение лимитов офиса
|
OMS <-> Officer: Получение лимитов офиса
|
||||||
OMS -> OMS: Валидация способа получения
|
OMS -> OMS: Валидация способа получения
|
||||||
alt валидация пройдена
|
alt валидация пройдена
|
||||||
autonumber 9.1
|
autonumber 9.1
|
||||||
OMS -> OMS: Продолжение сценария
|
OMS -> OMS: Продолжение сценария
|
||||||
else валидация не пройдена
|
else валидация не пройдена
|
||||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||||
end
|
end
|
||||||
autonumber 10
|
autonumber 10
|
||||||
OMS -> OMS: Валидация способа оплаты
|
OMS -> OMS: Валидация способа оплаты
|
||||||
alt валидация пройдена
|
alt валидация пройдена
|
||||||
autonumber 10.1
|
autonumber 10.1
|
||||||
OMS -> OMS: Продолжение сценария
|
OMS -> OMS: Продолжение сценария
|
||||||
else валидация не пройдена
|
else валидация не пройдена
|
||||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||||
end
|
end
|
||||||
autonumber 11
|
autonumber 11
|
||||||
OMS -> OMS: Данные о заказе\nполучены и провалидированы
|
OMS -> OMS: Данные о заказе\nполучены и провалидированы
|
||||||
OMS -> OMS: Переход к бизнес-проверкам
|
OMS -> OMS: Переход к бизнес-проверкам
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,55 +1,55 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe "FRQ-2 Заказ.БизнесПроверки."
|
mainframe "FRQ-2 Заказ.БизнесПроверки."
|
||||||
|
|
||||||
queue Название_топика_2
|
queue Название_топика_2
|
||||||
database ClickHouse
|
database ClickHouse
|
||||||
participant OMS
|
participant OMS
|
||||||
participant DRUZ
|
participant DRUZ
|
||||||
participant PDM
|
participant PDM
|
||||||
|
|
||||||
|
|
||||||
autonumber 1
|
autonumber 1
|
||||||
OMS -> PDM: Запрашивает\nGUID производителя товара
|
OMS -> PDM: Запрашивает\nGUID производителя товара
|
||||||
OMS -> OMS: Проверка на возможность\nпродажи товара
|
OMS -> OMS: Проверка на возможность\nпродажи товара
|
||||||
|
|
||||||
alt валидация пройдена
|
alt валидация пройдена
|
||||||
autonumber 2.1
|
autonumber 2.1
|
||||||
OMS -> OMS: Продолжение сценария
|
OMS -> OMS: Продолжение сценария
|
||||||
else валидация не пройдена
|
else валидация не пройдена
|
||||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||||
end
|
end
|
||||||
autonumber 3
|
autonumber 3
|
||||||
|
|
||||||
OMS -> DRUZ: Запрашивает \nпризнак "Наличие"
|
OMS -> DRUZ: Запрашивает \nпризнак "Наличие"
|
||||||
OMS -> OMS: Проверка что товары\nиз заказа в наличии
|
OMS -> OMS: Проверка что товары\nиз заказа в наличии
|
||||||
alt валидация пройдена
|
alt валидация пройдена
|
||||||
autonumber 4.1
|
autonumber 4.1
|
||||||
OMS -> OMS: Продолжение сценария
|
OMS -> OMS: Продолжение сценария
|
||||||
else валидация не пройдена
|
else валидация не пройдена
|
||||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||||
end
|
end
|
||||||
autonumber 5
|
autonumber 5
|
||||||
OMS -> PDM: Запрашивает ВГХ товара
|
OMS -> PDM: Запрашивает ВГХ товара
|
||||||
OMS -> OMS: Расчитывает объем и\nобщий вес заказа
|
OMS -> OMS: Расчитывает объем и\nобщий вес заказа
|
||||||
OMS -> OMS: Проверка на лимиты\nВГХ ТТ
|
OMS -> OMS: Проверка на лимиты\nВГХ ТТ
|
||||||
alt валидация пройдена
|
alt валидация пройдена
|
||||||
autonumber 7.1
|
autonumber 7.1
|
||||||
OMS -> OMS: Продолжение сценария
|
OMS -> OMS: Продолжение сценария
|
||||||
else валидация не пройдена
|
else валидация не пройдена
|
||||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||||
end
|
end
|
||||||
autonumber 8
|
autonumber 8
|
||||||
OMS -> OMS: Проверка способа\nоплаты на ТТ
|
OMS -> OMS: Проверка способа\nоплаты на ТТ
|
||||||
alt валидация пройдена
|
alt валидация пройдена
|
||||||
autonumber 8.1
|
autonumber 8.1
|
||||||
OMS -> OMS: Продолжение сценария
|
OMS -> OMS: Продолжение сценария
|
||||||
else валидация не пройдена
|
else валидация не пройдена
|
||||||
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
OMS -> ClickHouse: Логирование не\nпройденных проверок
|
||||||
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
OMS -> Название_топика_2: Сущность "Заказ"\nс набором атрибутов
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,39 +1,39 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1500x1500
|
scale 1500x1500
|
||||||
mainframe Автооформление заказов
|
mainframe Автооформление заказов
|
||||||
actor user as user
|
actor user as user
|
||||||
participant SITE
|
participant SITE
|
||||||
queue kafka
|
queue kafka
|
||||||
participant Gateway
|
participant Gateway
|
||||||
participant workflow
|
participant workflow
|
||||||
participant wtis
|
participant wtis
|
||||||
|
|
||||||
user -> SITE: Оформляет заказ
|
user -> SITE: Оформляет заказ
|
||||||
SITE -> SITE: Сохраняет заказ в БД
|
SITE -> SITE: Сохраняет заказ в БД
|
||||||
SITE --> kafka: Пишет заказ в kafka
|
SITE --> kafka: Пишет заказ в kafka
|
||||||
Gateway --> kafka: Забирает заказ
|
Gateway --> kafka: Забирает заказ
|
||||||
|
|
||||||
Gateway -> workflow: CreateB2CAO
|
Gateway -> workflow: CreateB2CAO
|
||||||
workflow -> workflow: Проверяет условия АО
|
workflow -> workflow: Проверяет условия АО
|
||||||
workflow -> workflow: Проверяет тип доставки
|
workflow -> workflow: Проверяет тип доставки
|
||||||
alt Тип доставки "Курьером"
|
alt Тип доставки "Курьером"
|
||||||
workflow -> workflow: Устанавливает таймер на N минут
|
workflow -> workflow: Устанавливает таймер на N минут
|
||||||
alt Поступила оплата в заказ до истечения срока таймера
|
alt Поступила оплата в заказ до истечения срока таймера
|
||||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||||
else Не поступила оплата в заказ до истечения срока таймера
|
else Не поступила оплата в заказ до истечения срока таймера
|
||||||
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
||||||
end
|
end
|
||||||
else Тип доставки "Самовывоз"
|
else Тип доставки "Самовывоз"
|
||||||
workflow -> workflow: Проверяет наличие\nкрупногабаритных товаров\nв заказе
|
workflow -> workflow: Проверяет наличие\nкрупногабаритных товаров\nв заказе
|
||||||
alt Крупногабаритных товаров в заказе нет
|
alt Крупногабаритных товаров в заказе нет
|
||||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||||
else Крупногабаритные товары в заказе есть
|
else Крупногабаритные товары в заказе есть
|
||||||
workflow -> workflow: Устанавливает таймер на N минут
|
workflow -> workflow: Устанавливает таймер на N минут
|
||||||
alt Поступила оплата в заказ до истечения срока таймера
|
alt Поступила оплата в заказ до истечения срока таймера
|
||||||
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа
|
||||||
else Не поступила оплата в заказ до истечения срока таймера
|
else Не поступила оплата в заказ до истечения срока таймера
|
||||||
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
workflow -> wtis: Заказ передается во WTIS\nМеняется мастер система
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,30 +1,33 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1200*1200
|
scale 1200*1200
|
||||||
mainframe Получение свободных остатков
|
mainframe Получение свободных остатков
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
participant Shcat as Shcat
|
collections Cache as cache
|
||||||
participant Susanin as Susanin
|
participant Shcat as Shcat
|
||||||
autonumber
|
participant Susanin as Susanin
|
||||||
|
autonumber
|
||||||
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
|
||||||
ARM -> OMS: API GET /quantity-list-by-office
|
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
||||||
activate OMS
|
ARM -> OMS: API GET /quantity-list-by-office
|
||||||
OMS -> OMS: валидирует запрос
|
activate OMS
|
||||||
|
OMS -> OMS: валидирует запрос
|
||||||
|
|
||||||
OMS -> Shcat: POST method rests.get
|
OMS -> cache: Забрать все офисы из кэша
|
||||||
activate Shcat
|
activate cache
|
||||||
return answer API POST
|
return answer
|
||||||
|
|
||||||
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
OMS -> Shcat: POST method rests.get
|
||||||
activate Susanin
|
activate Shcat
|
||||||
return answer API POST
|
return answer API POST
|
||||||
|
|
||||||
OMS -> OMS: Сращивает ответы\nмежду собой
|
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
||||||
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
activate Susanin
|
||||||
|
return answer API POST
|
||||||
return answer API GET
|
|
||||||
ARM --> user: Рендерит данные в модальном окне
|
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
||||||
|
|
||||||
|
return answer API GET
|
||||||
|
ARM --> user: Рендерит данные в модальном окне
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,24 +1,24 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1200*1200
|
scale 1200*1200
|
||||||
mainframe Получение остатков под резервом
|
mainframe Получение остатков под резервом
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
participant Susanin as Susanin
|
participant Susanin as Susanin
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
user -> ARM: Нажимает на остатки товара\nв товарной строке заказа
|
||||||
ARM -> OMS: API GET /quantity-list-by-office
|
ARM -> OMS: API GET /quantity-list-by-office
|
||||||
activate OMS
|
activate OMS
|
||||||
OMS -> OMS: валидирует запрос
|
OMS -> OMS: валидирует запрос
|
||||||
|
|
||||||
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
OMS -> Susanin: POST method get_logistic_chains_with_priority
|
||||||
activate Susanin
|
activate Susanin
|
||||||
return answer API POST
|
return answer API POST
|
||||||
|
|
||||||
OMS -> OMS: запрос в mongodb Order с фильтрами по товару
|
OMS -> OMS: запрос в mongodb Order с фильтрами по товару
|
||||||
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады
|
||||||
|
|
||||||
return answer API GET
|
return answer API GET
|
||||||
ARM --> user: Рендерит данные в модальном окне
|
ARM --> user: Рендерит данные в модальном окне
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Добавление контакта к КА в заказе
|
mainframe Добавление контакта к КА в заказе
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Добавляет контакт КА в кратком блоке КА
|
user -> ARM: Добавляет контакт КА в кратком блоке КА
|
||||||
activate ARM
|
activate ARM
|
||||||
ARM -> OMS: API POST /orders/{orderId}/contacts/add
|
ARM -> OMS: API POST /orders/{orderId}/contacts/add
|
||||||
activate OMS
|
activate OMS
|
||||||
return API POST answer
|
return API POST answer
|
||||||
return ок
|
return ок
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Добавление КА к заказу
|
mainframe Добавление КА к заказу
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Добавляет КА в заказ
|
user -> ARM: Добавляет КА в заказ
|
||||||
activate ARM
|
activate ARM
|
||||||
ARM -> OMS: API POST /orders/{orderId}/contractors/add
|
ARM -> OMS: API POST /orders/{orderId}/contractors/add
|
||||||
activate OMS
|
activate OMS
|
||||||
return API POST answer
|
return API POST answer
|
||||||
return ок
|
return ок
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,30 +1,30 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Обновление данных в модели КА
|
mainframe Обновление данных в модели КА
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
participant MSKB as MSKB
|
participant MSKB as MSKB
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Нажимает кнопку "Сохранить"
|
user -> ARM: Нажимает кнопку "Сохранить"
|
||||||
ARM -> OMS: API PUT /contractors/{contractorID}
|
ARM -> OMS: API PUT /contractors/{contractorID}
|
||||||
activate OMS
|
activate OMS
|
||||||
OMS -> OMS: Разделяет модель КА\nна основные поля\n+ контакты
|
OMS -> OMS: Разделяет модель КА\nна основные поля\n+ контакты
|
||||||
alt Если изменена только основная модель
|
alt Если изменена только основная модель
|
||||||
OMS -> MSKB: API POST api/business/v2/physic/update
|
OMS -> MSKB: API POST api/business/v2/physic/update
|
||||||
activate MSKB
|
activate MSKB
|
||||||
return answer API POST
|
return answer API POST
|
||||||
else Если добавлены контакты
|
else Если добавлены контакты
|
||||||
OMS -> MSKB: API POST api/business/v2/contact/create
|
OMS -> MSKB: API POST api/business/v2/contact/create
|
||||||
activate MSKB
|
activate MSKB
|
||||||
return answer API POST
|
return answer API POST
|
||||||
else Если удалены контакты
|
else Если удалены контакты
|
||||||
OMS -> MSKB: Удаление контакта КА:\n API DELETE api/business/v2/contact/delete
|
OMS -> MSKB: Удаление контакта КА:\n API DELETE api/business/v2/contact/delete
|
||||||
activate MSKB
|
activate MSKB
|
||||||
return answer API DELETE
|
return answer API DELETE
|
||||||
end
|
end
|
||||||
|
|
||||||
return answer API PUT
|
return answer API PUT
|
||||||
ARM --> user: Показывает сообщение и\nзакрывает модалку
|
ARM --> user: Показывает сообщение и\nзакрывает модалку
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Логика "Создание КА"
|
mainframe Логика "Создание КА"
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
participant MSKB as MSKB
|
participant MSKB as MSKB
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Нажимает кнопку "Создать контрагента"
|
user -> ARM: Нажимает кнопку "Создать контрагента"
|
||||||
ARM -> OMS: API POST /contractors/create
|
ARM -> OMS: API POST /contractors/create
|
||||||
activate OMS
|
activate OMS
|
||||||
OMS -> MSKB: API POST api/business/v2/physic/create
|
OMS -> MSKB: API POST api/business/v2/physic/create
|
||||||
activate MSKB
|
activate MSKB
|
||||||
return answer API POST
|
return answer API POST
|
||||||
|
|
||||||
return answer API POST
|
return answer API POST
|
||||||
ARM --> user: Показывает сообщение и\nзакрывает модалку
|
ARM --> user: Показывает сообщение и\nзакрывает модалку
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Получение данных для полной карточки КА
|
mainframe Получение данных для полной карточки КА
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
participant MSKB as MSKB
|
participant MSKB as MSKB
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Открывает карточку контрагента
|
user -> ARM: Открывает карточку контрагента
|
||||||
ARM -> OMS: API GET /contractors/{contractorID}
|
ARM -> OMS: API GET /contractors/{contractorID}
|
||||||
activate OMS
|
activate OMS
|
||||||
OMS -> MSKB: GraphQL contractorPhysic
|
OMS -> MSKB: GraphQL contractorPhysic
|
||||||
activate MSKB
|
activate MSKB
|
||||||
return answer API GET
|
return answer API GET
|
||||||
|
|
||||||
return answer get_short_info_contact
|
return answer get_short_info_contact
|
||||||
ARM --> user: Рендерит карточку контрагента
|
ARM --> user: Рендерит карточку контрагента
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,21 +1,21 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Логика подблока "Информация о контрагенте"
|
mainframe Логика подблока "Информация о контрагенте"
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
participant WTIS as WTIS
|
participant WTIS as WTIS
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Нажимает кнопку раскрытия блока
|
user -> ARM: Нажимает кнопку раскрытия блока
|
||||||
activate ARM
|
activate ARM
|
||||||
ARM -> OMS: API GET\n/contractors/{contractorID}/orderInfo
|
ARM -> OMS: API GET\n/contractors/{contractorID}/orderInfo
|
||||||
activate OMS
|
activate OMS
|
||||||
OMS -> WTIS: API GET\napi/order/oms_export/contragent_info_oms/{guid}
|
OMS -> WTIS: API GET\napi/order/oms_export/contragent_info_oms/{guid}
|
||||||
activate WTIS
|
activate WTIS
|
||||||
WTIS -> WTIS: prepare data
|
WTIS -> WTIS: prepare data
|
||||||
return API GET answer
|
return API GET answer
|
||||||
return API GET answer
|
return API GET answer
|
||||||
|
|
||||||
return Рендерит блок
|
return Рендерит блок
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,38 +1,38 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Логика блока "Поиск КА"
|
mainframe Логика блока "Поиск КА"
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant OMS as OMS
|
participant OMS as OMS
|
||||||
participant MSKB as MSKB
|
participant MSKB as MSKB
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Нажимает кнопку "Поиск КА"
|
user -> ARM: Нажимает кнопку "Поиск КА"
|
||||||
|
|
||||||
return рендерит шаблон модального окна
|
return рендерит шаблон модального окна
|
||||||
|
|
||||||
alt Если ищем только по номеру телефона
|
alt Если ищем только по номеру телефона
|
||||||
user -> ARM: Заполняет номер телефона полностью
|
user -> ARM: Заполняет номер телефона полностью
|
||||||
else Если ищем только по email
|
else Если ищем только по email
|
||||||
user -> ARM: Заполняет email полностью
|
user -> ARM: Заполняет email полностью
|
||||||
else Если ищем по номеру телефона И email
|
else Если ищем по номеру телефона И email
|
||||||
user -> ARM: Заполняет номер телефона И email полностью
|
user -> ARM: Заполняет номер телефона И email полностью
|
||||||
end
|
end
|
||||||
ARM -> ARM: валидирует поля
|
ARM -> ARM: валидирует поля
|
||||||
alt Валидация не успешна
|
alt Валидация не успешна
|
||||||
ARM -> user: Информирует пользователя об ошибках
|
ARM -> user: Информирует пользователя об ошибках
|
||||||
|
|
||||||
else Валидация успешно пройдена
|
else Валидация успешно пройдена
|
||||||
ARM -> OMS: /contractors/search
|
ARM -> OMS: /contractors/search
|
||||||
activate OMS
|
activate OMS
|
||||||
end
|
end
|
||||||
|
|
||||||
OMS -> MSKB: API POST /api/business/v2/physic/search
|
OMS -> MSKB: API POST /api/business/v2/physic/search
|
||||||
activate MSKB
|
activate MSKB
|
||||||
MSKB -> MSKB: prepare_data
|
MSKB -> MSKB: prepare_data
|
||||||
return answer API POST
|
return answer API POST
|
||||||
|
|
||||||
return success
|
return success
|
||||||
|
|
||||||
ARM -> user: Отображает результаты поиска
|
ARM -> user: Отображает результаты поиска
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1000*1000
|
scale 1000*1000
|
||||||
mainframe Получение данных (Реализации, оплаты) от WTIS MVP
|
mainframe Получение данных (Реализации, оплаты) от WTIS MVP
|
||||||
participant WTIS as WTIS
|
participant WTIS as WTIS
|
||||||
queue kafka
|
queue kafka
|
||||||
participant workflow as workflow
|
participant workflow as workflow
|
||||||
collections Redis as redis
|
collections Redis as redis
|
||||||
autonumber
|
autonumber
|
||||||
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
||||||
|
|
||||||
loop Всегда
|
loop Всегда
|
||||||
WTIS -> kafka: Пишет все инфо\nо документах по заказу
|
WTIS -> kafka: Пишет все инфо\nо документах по заказу
|
||||||
workflow -> kafka: Получает документы\nк заказу из очереди
|
workflow -> kafka: Получает документы\nк заказу из очереди
|
||||||
alt данных нет в кэше по ключу
|
alt данных нет в кэше по ключу
|
||||||
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
|
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
|
||||||
else данные есть в кэше по ключу
|
else данные есть в кэше по ключу
|
||||||
workflow -> redis: Удаляет запись по ключу
|
workflow -> redis: Удаляет запись по ключу
|
||||||
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
|
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня
|
||||||
end
|
end
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1000*1000
|
scale 1000*1000
|
||||||
mainframe Получение данных безналичная оплата / оплата по счету из kafka
|
mainframe Получение данных безналичная оплата / оплата по счету из kafka
|
||||||
participant paykeeper
|
participant paykeeper
|
||||||
participant 1C
|
participant 1C
|
||||||
queue kafka
|
queue kafka
|
||||||
participant workflow as workflow
|
participant workflow as workflow
|
||||||
collections PaymentsDb as PaymentsDb
|
collections PaymentsDb as PaymentsDb
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
loop Всегда
|
loop Всегда
|
||||||
paykeeper -> kafka: Пишет все инфо\nо документах по заказу
|
paykeeper -> kafka: Пишет все инфо\nо документах по заказу
|
||||||
1C -> kafka: Пишет все инфо\nо документах по заказу
|
1C -> kafka: Пишет все инфо\nо документах по заказу
|
||||||
workflow -> kafka: Получает документы\nк заказу из очереди
|
workflow -> kafka: Получает документы\nк заказу из очереди
|
||||||
workflow -> workflow: Преобразовывает данные
|
workflow -> workflow: Преобразовывает данные
|
||||||
workflow -> PaymentsDb: Записывает в коллекцию
|
workflow -> PaymentsDb: Записывает в коллекцию
|
||||||
end
|
end
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,46 +1,46 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1000*1000
|
scale 1000*1000
|
||||||
mainframe Получение данных для отрисовки таблицы оплат MVP
|
mainframe Получение данных для отрисовки таблицы оплат MVP
|
||||||
participant WTIS as WTIS
|
participant WTIS as WTIS
|
||||||
collections Redis as redis
|
collections Redis as redis
|
||||||
participant payments as payments
|
participant payments as payments
|
||||||
participant workflow as workflow
|
participant workflow as workflow
|
||||||
participant gateway as gateway
|
participant gateway as gateway
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
actor user as user
|
actor user as user
|
||||||
autonumber
|
autonumber
|
||||||
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
||||||
|
|
||||||
autonumber 1
|
autonumber 1
|
||||||
user -> ARM: Открывает заказ
|
user -> ARM: Открывает заказ
|
||||||
ARM -> gateway: Запрашивает\nдокументы к заказу
|
ARM -> gateway: Запрашивает\nдокументы к заказу
|
||||||
activate gateway
|
activate gateway
|
||||||
== Получение данных о наличной оплате ==
|
== Получение данных о наличной оплате ==
|
||||||
gateway -> redis: Проверяет наличие\nданных в кэше
|
gateway -> redis: Проверяет наличие\nданных в кэше
|
||||||
alt данные есть в кэше
|
alt данные есть в кэше
|
||||||
redis --> gateway: Возвращает\nдокументы\n к заказу
|
redis --> gateway: Возвращает\nдокументы\n к заказу
|
||||||
else данных нет в кэше
|
else данных нет в кэше
|
||||||
redis --> gateway: Возвращает\nпустой ответ
|
redis --> gateway: Возвращает\nпустой ответ
|
||||||
gateway -> workflow: Триггерит на\nобновление данных
|
gateway -> workflow: Триггерит на\nобновление данных
|
||||||
activate workflow
|
activate workflow
|
||||||
workflow -> WTIS: API GET order_doc_info()
|
workflow -> WTIS: API GET order_doc_info()
|
||||||
activate WTIS
|
activate WTIS
|
||||||
WTIS --> workflow: answer
|
WTIS --> workflow: answer
|
||||||
deactivate WTIS
|
deactivate WTIS
|
||||||
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
|
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
|
||||||
redis --> workflow: Сообщение об успешном сохранении
|
redis --> workflow: Сообщение об успешном сохранении
|
||||||
workflow --> gateway: Возвращает\nдокументы\n к заказу
|
workflow --> gateway: Возвращает\nдокументы\n к заказу
|
||||||
end
|
end
|
||||||
== Получение данных о других типах оплаты ==
|
== Получение данных о других типах оплаты ==
|
||||||
workflow -> payments: Запрашивает данные\nоб онлайн оплате И\nпо счету
|
workflow -> payments: Запрашивает данные\nоб онлайн оплате И\nпо счету
|
||||||
activate payments
|
activate payments
|
||||||
payments --> workflow: answer
|
payments --> workflow: answer
|
||||||
deactivate payments
|
deactivate payments
|
||||||
workflow -> workflow: Агрегирует данные\nс источников
|
workflow -> workflow: Агрегирует данные\nс источников
|
||||||
workflow --> gateway: answer
|
workflow --> gateway: answer
|
||||||
deactivate workflow
|
deactivate workflow
|
||||||
gateway --> ARM: возвращает\nданные об оплатах
|
gateway --> ARM: возвращает\nданные об оплатах
|
||||||
deactivate gateway
|
deactivate gateway
|
||||||
ARM --> user: Рендерит блок\nдокументов
|
ARM --> user: Рендерит блок\nдокументов
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,36 +1,36 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1000*1000
|
scale 1000*1000
|
||||||
mainframe Получение данных для отрисовки модалки Реализации или оплаты наличными
|
mainframe Получение данных для отрисовки модалки Реализации или оплаты наличными
|
||||||
participant WTIS as WTIS
|
participant WTIS as WTIS
|
||||||
collections Redis as redis
|
collections Redis as redis
|
||||||
participant workflow as workflow
|
participant workflow as workflow
|
||||||
participant gateway as gateway
|
participant gateway as gateway
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
actor user as user
|
actor user as user
|
||||||
|
|
||||||
autonumber
|
autonumber
|
||||||
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
||||||
|
|
||||||
user -> ARM: Открывает заказ
|
user -> ARM: Открывает заказ
|
||||||
ARM -> gateway: Запрашивает\nдокументы к заказу
|
ARM -> gateway: Запрашивает\nдокументы к заказу
|
||||||
activate gateway
|
activate gateway
|
||||||
gateway -> redis: Проверяет наличие\nданных в кэше
|
gateway -> redis: Проверяет наличие\nданных в кэше
|
||||||
alt данные есть в кэше
|
alt данные есть в кэше
|
||||||
redis --> gateway: Возвращает\nдокументы\n к заказу
|
redis --> gateway: Возвращает\nдокументы\n к заказу
|
||||||
else данных нет в кэше
|
else данных нет в кэше
|
||||||
redis --> gateway: Возвращает\nпустой ответ
|
redis --> gateway: Возвращает\nпустой ответ
|
||||||
gateway -> workflow: Триггерит на\nобновление данных
|
gateway -> workflow: Триггерит на\nобновление данных
|
||||||
activate workflow
|
activate workflow
|
||||||
workflow -> WTIS: API GET order_doc_info()
|
workflow -> WTIS: API GET order_doc_info()
|
||||||
activate WTIS
|
activate WTIS
|
||||||
return answer
|
return answer
|
||||||
deactivate WTIS
|
deactivate WTIS
|
||||||
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
|
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
|
||||||
redis --> workflow: Сообщение об успешном сохранении
|
redis --> workflow: Сообщение об успешном сохранении
|
||||||
workflow --> gateway: Возвращает\nдокументы\n к заказу
|
workflow --> gateway: Возвращает\nдокументы\n к заказу
|
||||||
deactivate workflow
|
deactivate workflow
|
||||||
end
|
end
|
||||||
gateway --> ARM: данные по документу
|
gateway --> ARM: данные по документу
|
||||||
ARM -> user: рендерит модальное\nокно с инфо\nо документе
|
ARM -> user: рендерит модальное\nокно с инфо\nо документе
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,38 +1,38 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1000*1000
|
scale 1000*1000
|
||||||
mainframe Получение данных для отрисовки таблицы реализаций MVP
|
mainframe Получение данных для отрисовки таблицы реализаций MVP
|
||||||
participant WTIS as WTIS
|
participant WTIS as WTIS
|
||||||
collections Redis as redis
|
collections Redis as redis
|
||||||
participant workflow as workflow
|
participant workflow as workflow
|
||||||
participant gateway as gateway
|
participant gateway as gateway
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
actor user as user
|
actor user as user
|
||||||
autonumber
|
autonumber
|
||||||
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
hnote over WTIS: После MVP WTIS изменится\nна сервис баланса
|
||||||
|
|
||||||
autonumber 1
|
autonumber 1
|
||||||
user -> ARM: Открывает заказ
|
user -> ARM: Открывает заказ
|
||||||
ARM -> gateway: Запрашивает\nдокументы к заказу
|
ARM -> gateway: Запрашивает\nдокументы к заказу
|
||||||
activate gateway
|
activate gateway
|
||||||
gateway -> redis: Проверяет наличие\nданных в кэше
|
gateway -> redis: Проверяет наличие\nданных в кэше
|
||||||
alt данные есть в кэше
|
alt данные есть в кэше
|
||||||
redis --> gateway: Возвращает\nдокументы\n к заказу
|
redis --> gateway: Возвращает\nдокументы\n к заказу
|
||||||
else данных нет в кэше
|
else данных нет в кэше
|
||||||
redis --> gateway: Возвращает\nпустой ответ
|
redis --> gateway: Возвращает\nпустой ответ
|
||||||
gateway -> workflow: Триггерит на\nобновление данных
|
gateway -> workflow: Триггерит на\nобновление данных
|
||||||
activate workflow
|
activate workflow
|
||||||
workflow -> WTIS: API GET order_doc_info()
|
workflow -> WTIS: API GET order_doc_info()
|
||||||
activate WTIS
|
activate WTIS
|
||||||
return answer
|
return answer
|
||||||
deactivate WTIS
|
deactivate WTIS
|
||||||
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
|
workflow -> redis: Сохраняет в кэш\nКраткую форму на 7 дней\nПолную форму на 3 дня (спорно)
|
||||||
redis --> workflow: Сообщение об успешном сохранении
|
redis --> workflow: Сообщение об успешном сохранении
|
||||||
workflow --> gateway: Возвращает\nдокументы\n к заказу
|
workflow --> gateway: Возвращает\nдокументы\n к заказу
|
||||||
deactivate workflow
|
deactivate workflow
|
||||||
end
|
end
|
||||||
|
|
||||||
gateway --> ARM: возвращает\nданные о заказе
|
gateway --> ARM: возвращает\nданные о заказе
|
||||||
deactivate gateway
|
deactivate gateway
|
||||||
ARM --> user: Рендерит блок\nдокументов
|
ARM --> user: Рендерит блок\nдокументов
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,41 +1,41 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800*800
|
scale 800*800
|
||||||
mainframe Получение списка регионов от Officer
|
mainframe Получение списка регионов от Officer
|
||||||
actor Пользователь as user
|
actor Пользователь as user
|
||||||
participant ARM as ARM
|
participant ARM as ARM
|
||||||
participant gateway as gateway
|
participant gateway as gateway
|
||||||
collections redis as redis
|
collections redis as redis
|
||||||
participant workflow as workflow
|
participant workflow as workflow
|
||||||
participant officer as officer
|
participant officer as officer
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
user -> ARM: Открывает форму\nзаказа
|
user -> ARM: Открывает форму\nзаказа
|
||||||
activate ARM
|
activate ARM
|
||||||
ARM -> gateway: REST API GET\n инфо о регионах
|
ARM -> gateway: REST API GET\n инфо о регионах
|
||||||
activate gateway
|
activate gateway
|
||||||
gateway -> redis: Запрашивает\nсписок\nрегионов
|
gateway -> redis: Запрашивает\nсписок\nрегионов
|
||||||
|
|
||||||
opt Данные о регионах есть в кэше
|
opt Данные о регионах есть в кэше
|
||||||
redis --> gateway: answer
|
redis --> gateway: answer
|
||||||
else Данные необходимо обновить в кэше
|
else Данные необходимо обновить в кэше
|
||||||
gateway -> workflow: триггерит обновление
|
gateway -> workflow: триггерит обновление
|
||||||
activate workflow
|
activate workflow
|
||||||
workflow -> officer: GraphQL method\noffices
|
workflow -> officer: GraphQL method\noffices
|
||||||
activate officer
|
activate officer
|
||||||
officer --> workflow: GraphQL answer
|
officer --> workflow: GraphQL answer
|
||||||
workflow -> officer: GraphQL method\nlocalities
|
workflow -> officer: GraphQL method\nlocalities
|
||||||
officer --> workflow: GraphQL answer
|
officer --> workflow: GraphQL answer
|
||||||
deactivate officer
|
deactivate officer
|
||||||
workflow -> workflow: Обработка\nданных
|
workflow -> workflow: Обработка\nданных
|
||||||
workflow -> redis: Записывает регионы\nи параметры в экш
|
workflow -> redis: Записывает регионы\nи параметры в экш
|
||||||
workflow --> gateway: answer
|
workflow --> gateway: answer
|
||||||
deactivate workflow
|
deactivate workflow
|
||||||
end
|
end
|
||||||
|
|
||||||
gateway --> ARM: REST API GET\nanswer
|
gateway --> ARM: REST API GET\nanswer
|
||||||
deactivate gateway
|
deactivate gateway
|
||||||
ARM --> user: Рендерит данные
|
ARM --> user: Рендерит данные
|
||||||
deactivate ARM
|
deactivate ARM
|
||||||
@enduml
|
@enduml
|
||||||
|
|
||||||
|
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe Добавление/удаление заметки пользователя в ЛК
|
mainframe Добавление/удаление заметки пользователя в ЛК
|
||||||
scale 1500x1500
|
scale 1500x1500
|
||||||
actor user as user
|
actor user as user
|
||||||
participant ARM
|
participant ARM
|
||||||
participant Gateway
|
participant Gateway
|
||||||
participant personalCabinet
|
participant personalCabinet
|
||||||
|
|
||||||
autonumber
|
autonumber
|
||||||
user -> ARM: Нажимает кнопку "Главная"
|
user -> ARM: Нажимает кнопку "Главная"
|
||||||
alt Пользователь ввел текст и снял фокус с поля
|
alt Пользователь ввел текст и снял фокус с поля
|
||||||
ARM -> Gateway: Отправляет запрос на\nPUT personal-cabinet/v1/note
|
ARM -> Gateway: Отправляет запрос на\nPUT personal-cabinet/v1/note
|
||||||
else Пользователь нажал кнопку "Очистить"
|
else Пользователь нажал кнопку "Очистить"
|
||||||
ARM -> Gateway: Отправляет запрос на\nDELETE personal-cabinet/v1/note
|
ARM -> Gateway: Отправляет запрос на\nDELETE personal-cabinet/v1/note
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
||||||
Gateway -> personalCabinet: Вызывает методы для\nизменения заметок по пользователю
|
Gateway -> personalCabinet: Вызывает методы для\nизменения заметок по пользователю
|
||||||
personalCabinet --> Gateway: answer
|
personalCabinet --> Gateway: answer
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
ARM --> user: answer
|
ARM --> user: answer
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe Взаимодействие с избранным
|
mainframe Взаимодействие с избранным
|
||||||
scale 1500x1500
|
scale 1500x1500
|
||||||
actor user as user
|
actor user as user
|
||||||
participant ARM
|
participant ARM
|
||||||
participant Gateway
|
participant Gateway
|
||||||
participant Order
|
participant Order
|
||||||
|
|
||||||
autonumber
|
autonumber
|
||||||
user -> ARM: Нажимает иконку\nсердечка в любом заказе
|
user -> ARM: Нажимает иконку\nсердечка в любом заказе
|
||||||
|
|
||||||
alt Поле было предварительно выделено (активное состояние)
|
alt Поле было предварительно выделено (активное состояние)
|
||||||
ARM -> Gateway: Отправляет запрос на\nDELETE orders/v1/{orderID}/favorite
|
ARM -> Gateway: Отправляет запрос на\nDELETE orders/v1/{orderID}/favorite
|
||||||
else Поле было предварительно не выделено (не активное состояние)
|
else Поле было предварительно не выделено (не активное состояние)
|
||||||
ARM -> Gateway: Отправляет запрос на\nPOST orders/v1/{orderID}/favorite
|
ARM -> Gateway: Отправляет запрос на\nPOST orders/v1/{orderID}/favorite
|
||||||
end
|
end
|
||||||
|
|
||||||
Gateway -> Order: Вызывает метод\nвзаимодействия с заказом
|
Gateway -> Order: Вызывает метод\nвзаимодействия с заказом
|
||||||
Order -> Order: Обновляет модель order\n(Либо добавляет uuid юзера\nлибо удаляет)
|
Order -> Order: Обновляет модель order\n(Либо добавляет uuid юзера\nлибо удаляет)
|
||||||
Order --> Gateway: answer
|
Order --> Gateway: answer
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
ARM --> user: answer
|
ARM --> user: answer
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe Получение данных о заказах для ЛК пользователя
|
mainframe Получение данных о заказах для ЛК пользователя
|
||||||
scale 1500x1500
|
scale 1500x1500
|
||||||
actor user as user
|
actor user as user
|
||||||
participant ARM
|
participant ARM
|
||||||
participant Gateway
|
participant Gateway
|
||||||
participant Order
|
participant Order
|
||||||
|
|
||||||
autonumber
|
autonumber
|
||||||
user -> ARM: Нажимает кнопку "Главная"
|
user -> ARM: Нажимает кнопку "Главная"
|
||||||
user -> ARM: Нажимает кнопку "Статистика по заказам"
|
user -> ARM: Нажимает кнопку "Статистика по заказам"
|
||||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/stats
|
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/stats
|
||||||
Gateway -> Order: Вызывает методы для получения всех необходимых срезов по заказам
|
Gateway -> Order: Вызывает методы для получения всех необходимых срезов по заказам
|
||||||
Order --> Gateway: answer
|
Order --> Gateway: answer
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
ARM --> user: Рендерит информационные блоки
|
ARM --> user: Рендерит информационные блоки
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe Получение заметки пользователя для ЛК
|
mainframe Получение заметки пользователя для ЛК
|
||||||
scale 1500x1500
|
scale 1500x1500
|
||||||
actor user as user
|
actor user as user
|
||||||
participant ARM
|
participant ARM
|
||||||
participant Gateway
|
participant Gateway
|
||||||
participant personalCabinet
|
participant personalCabinet
|
||||||
|
|
||||||
autonumber
|
autonumber
|
||||||
user -> ARM: Нажимает кнопку "Главная"
|
user -> ARM: Нажимает кнопку "Главная"
|
||||||
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note
|
||||||
Gateway -> personalCabinet: Вызывает методы для получения заметок по пользователю
|
Gateway -> personalCabinet: Вызывает методы для получения заметок по пользователю
|
||||||
personalCabinet --> Gateway: answer
|
personalCabinet --> Gateway: answer
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
ARM --> user: Рендерит текст в блоке заметок
|
ARM --> user: Рендерит текст в блоке заметок
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 800x800
|
scale 800x800
|
||||||
actor user as user
|
actor user as user
|
||||||
participant ARM
|
participant ARM
|
||||||
participant Gateway
|
participant Gateway
|
||||||
participant SITE
|
participant SITE
|
||||||
|
|
||||||
autonumber
|
autonumber
|
||||||
user -> ARM: Вводит номер корзины
|
user -> ARM: Вводит номер корзины
|
||||||
ARM -> Gateway: Запрос на info/cart
|
ARM -> Gateway: Запрос на info/cart
|
||||||
Gateway -> SITE: Запрос на api/v1/json/user-cart/
|
Gateway -> SITE: Запрос на api/v1/json/user-cart/
|
||||||
SITE --> Gateway: answer
|
SITE --> Gateway: answer
|
||||||
Gateway -> Gateway: Получает название региона из кэша
|
Gateway -> Gateway: Получает название региона из кэша
|
||||||
Gateway -> Gateway: Запрашивает цены из SCROOGE
|
Gateway -> Gateway: Запрашивает цены из SCROOGE
|
||||||
Gateway -> Gateway: Запрашивает инфо о товаре из PDM
|
Gateway -> Gateway: Запрашивает инфо о товаре из PDM
|
||||||
Gateway -> Gateway: Собирает ответ для frontend
|
Gateway -> Gateway: Собирает ответ для frontend
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
ARM -> ARM: Проверяет регионы\nв запросе и в заказе
|
ARM -> ARM: Проверяет регионы\nв запросе и в заказе
|
||||||
|
|
||||||
alt Регион корзины == регион заказа
|
alt Регион корзины == регион заказа
|
||||||
ARM --> user: answer
|
ARM --> user: answer
|
||||||
else Регион корзины <> регион заказа
|
else Регион корзины <> регион заказа
|
||||||
ARM -> user: Запрашивает\nподтверждение\nо смене региона
|
ARM -> user: Запрашивает\nподтверждение\nо смене региона
|
||||||
end
|
end
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,77 +1,77 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 2000x2000
|
scale 2000x2000
|
||||||
mainframe Внесение изменения в заказ в статусе "В работе"
|
mainframe Внесение изменения в заказ в статусе "В работе"
|
||||||
Actor USER
|
Actor USER
|
||||||
participant ARM
|
participant ARM
|
||||||
participant Gateway
|
participant Gateway
|
||||||
participant Workflow
|
participant Workflow
|
||||||
participant History
|
participant History
|
||||||
participant WTIS
|
participant WTIS
|
||||||
|
|
||||||
'-------------------------------------------action-------------------
|
'-------------------------------------------action-------------------
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
USER -> ARM: Открывает заказ
|
USER -> ARM: Открывает заказ
|
||||||
USER -> ARM: Нажимает кнопку\n"Редактировать заказ"
|
USER -> ARM: Нажимает кнопку\n"Редактировать заказ"
|
||||||
ARM -> Gateway: Запрос с номером заказа
|
ARM -> Gateway: Запрос с номером заказа
|
||||||
Gateway -> Workflow: Инициирует запуск workflow
|
Gateway -> Workflow: Инициирует запуск workflow
|
||||||
Workflow -> History: Открывает транзакцию\nrpc StartTransaction(StartTransactionRequest)
|
Workflow -> History: Открывает транзакцию\nrpc StartTransaction(StartTransactionRequest)
|
||||||
History --> Workflow: Подтверждает открытие транзакции\nreturn StartTransactionResponse
|
History --> Workflow: Подтверждает открытие транзакции\nreturn StartTransactionResponse
|
||||||
Workflow --> Gateway: Возвращает поля доступные\nдля редактирования
|
Workflow --> Gateway: Возвращает поля доступные\nдля редактирования
|
||||||
Gateway --> ARM: Возвращает ответ что транзакция открыта
|
Gateway --> ARM: Возвращает ответ что транзакция открыта
|
||||||
ARM --> USER: Разблокирует все элементы в\nинтерфейсе для редактирования
|
ARM --> USER: Разблокирует все элементы в\nинтерфейсе для редактирования
|
||||||
|
|
||||||
loop Внесение корректировок пользователем и наполнение транзакции
|
loop Внесение корректировок пользователем и наполнение транзакции
|
||||||
USER -> ARM: Вносит корректировки
|
USER -> ARM: Вносит корректировки
|
||||||
ARM -> Gateway: Использует стандартные\nendpoint заказа
|
ARM -> Gateway: Использует стандартные\nendpoint заказа
|
||||||
Gateway -> Workflow: Передает запрос в workflow
|
Gateway -> Workflow: Передает запрос в workflow
|
||||||
Workflow -> Workflow: Проверяет что транзакция открыта:\n<b>В ТЗ: Проверка наличия открытой транзакции
|
Workflow -> Workflow: Проверяет что транзакция открыта:\n<b>В ТЗ: Проверка наличия открытой транзакции
|
||||||
autonumber 14.1.1
|
autonumber 14.1.1
|
||||||
alt Транзакция закрыта
|
alt Транзакция закрыта
|
||||||
Workflow -> Gateway: Возвращает ошибку
|
Workflow -> Gateway: Возвращает ошибку
|
||||||
Gateway -> ARM: answer
|
Gateway -> ARM: answer
|
||||||
ARM -> USER: Выводит сообщение:\n"Транзакция была закрыта,\nнеобходимо заново открыть\nзаказ на корректировку"
|
ARM -> USER: Выводит сообщение:\n"Транзакция была закрыта,\nнеобходимо заново открыть\nзаказ на корректировку"
|
||||||
|
|
||||||
autonumber 14.2.1
|
autonumber 14.2.1
|
||||||
else Транзакция открыта
|
else Транзакция открыта
|
||||||
Workflow -> History: Отправляет GRPC сигнал\nс корректировками в History\nrpc CreateEvent(CreateEventRequest)
|
Workflow -> History: Отправляет GRPC сигнал\nс корректировками в History\nrpc CreateEvent(CreateEventRequest)
|
||||||
History -> History: Сохраняет\nкорректировки
|
History -> History: Сохраняет\nкорректировки
|
||||||
History --> Workflow: return CreateEventResponse
|
History --> Workflow: return CreateEventResponse
|
||||||
Workflow --> Gateway: answer
|
Workflow --> Gateway: answer
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
end 'Это end alt
|
end 'Это end alt
|
||||||
autonumber 15
|
autonumber 15
|
||||||
|
|
||||||
end 'Это end loop
|
end 'Это end loop
|
||||||
|
|
||||||
USER -> ARM: Нажимает кнопку\n"Сохранить изменения"\nИЛИ "Отменить изменения"
|
USER -> ARM: Нажимает кнопку\n"Сохранить изменения"\nИЛИ "Отменить изменения"
|
||||||
ARM -> Gateway: Отправляет запрос на\n/orders/end-correction/orderID={orderGUID}
|
ARM -> Gateway: Отправляет запрос на\n/orders/end-correction/orderID={orderGUID}
|
||||||
Gateway -> Workflow: Вызывает wf
|
Gateway -> Workflow: Вызывает wf
|
||||||
Workflow -> History: Запрашивает актуальное\nсостояние заказа\nrpc GetLastState(GetLastStateRequest)
|
Workflow -> History: Запрашивает актуальное\nсостояние заказа\nrpc GetLastState(GetLastStateRequest)
|
||||||
History --> Workflow: Возвращает Модель заказа\nс примененными корректировками\nreturn GetLastStateResponse
|
History --> Workflow: Возвращает Модель заказа\nс примененными корректировками\nreturn GetLastStateResponse
|
||||||
Workflow -> Workflow: Закрывает транзакцию,\nсохраняет актуальный\nзаказ в Order/shipment
|
Workflow -> Workflow: Закрывает транзакцию,\nсохраняет актуальный\nзаказ в Order/shipment
|
||||||
Workflow -> WTIS: Отправляет модель заказа через топик kafka:\n<b>В ТЗ: Функциональные изменения - "На стороне Gateway" - п.2
|
Workflow -> WTIS: Отправляет модель заказа через топик kafka:\n<b>В ТЗ: Функциональные изменения - "На стороне Gateway" - п.2
|
||||||
WTIS -> WTIS: Обновляет сущность заказа
|
WTIS -> WTIS: Обновляет сущность заказа
|
||||||
|
|
||||||
autonumber 22.1.1
|
autonumber 22.1.1
|
||||||
alt Изменения успешно проведены
|
alt Изменения успешно проведены
|
||||||
WTIS --> Workflow: Возвращает ответ success
|
WTIS --> Workflow: Возвращает ответ success
|
||||||
Workflow -> History: Отправляет GRPC сигнал о закрытии\nтранзакции\nrpc EndTransaction(EndTransactionRequest)
|
Workflow -> History: Отправляет GRPC сигнал о закрытии\nтранзакции\nrpc EndTransaction(EndTransactionRequest)
|
||||||
History --> Workflow: Подтверждает закрытие\nтранзакции\nreturn EndTransactionResponse
|
History --> Workflow: Подтверждает закрытие\nтранзакции\nreturn EndTransactionResponse
|
||||||
Workflow --> Gateway: answer
|
Workflow --> Gateway: answer
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
ARM --> USER: Отображает модальное\nокно "Изменения\nуспешно сохранены"
|
ARM --> USER: Отображает модальное\nокно "Изменения\nуспешно сохранены"
|
||||||
|
|
||||||
autonumber 22.2.1
|
autonumber 22.2.1
|
||||||
else Изменения не проведены
|
else Изменения не проведены
|
||||||
WTIS --> Workflow: Возвращает ответ failed
|
WTIS --> Workflow: Возвращает ответ failed
|
||||||
Workflow -> History: Отправляет GRPC сигнал\nоб удалении транзакции
|
Workflow -> History: Отправляет GRPC сигнал\nоб удалении транзакции
|
||||||
History --> Workflow: Отправляет GRPC сигнал\nчто транзакция удалена
|
History --> Workflow: Отправляет GRPC сигнал\nчто транзакция удалена
|
||||||
Workflow -> Workflow: Откатывает изменения,\nудаляет корректировки
|
Workflow -> Workflow: Откатывает изменения,\nудаляет корректировки
|
||||||
Workflow --> Gateway: answer
|
Workflow --> Gateway: answer
|
||||||
Gateway --> ARM: answer
|
Gateway --> ARM: answer
|
||||||
ARM --> USER: Отображает модальное\nокно "Не удалось\nприменить изменения"
|
ARM --> USER: Отображает модальное\nокно "Не удалось\nприменить изменения"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
11
oms/segmentation/segmentation.puml
Normal file
11
oms/segmentation/segmentation.puml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
@startuml
|
||||||
|
interface "CRM" as [CRM]
|
||||||
|
interface "WTIS" as [WTIS]
|
||||||
|
interface "OMS" as [OMS]
|
||||||
|
|
||||||
|
CRM -> OMS: Обновляет данные по\nменеджеру заказа
|
||||||
|
OMS -> WTIS: Обновляет данные п
|
||||||
|
DA - [First Component]
|
||||||
|
[First Component] ..> HTTP : use
|
||||||
|
|
||||||
|
@enduml
|
||||||
@@ -1,59 +1,59 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1300x1300
|
scale 1300x1300
|
||||||
mainframe AS IS обмен по созданию заказа на сайте
|
mainframe AS IS обмен по созданию заказа на сайте
|
||||||
Actor USER
|
Actor USER
|
||||||
participant SITE
|
participant SITE
|
||||||
database SITE_database
|
database SITE_database
|
||||||
queue kafka_1
|
queue kafka_1
|
||||||
participant WTIS
|
participant WTIS
|
||||||
database WTIS_database
|
database WTIS_database
|
||||||
queue kafka_2
|
queue kafka_2
|
||||||
participant OMS
|
participant OMS
|
||||||
database OMS_database
|
database OMS_database
|
||||||
'-------------------------------------------action-------------------
|
'-------------------------------------------action-------------------
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
USER -> SITE: Нажимает кнопку оформить заказ
|
USER -> SITE: Нажимает кнопку оформить заказ
|
||||||
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
||||||
SITE_database -> SITE: Заказ успешно сохранен
|
SITE_database -> SITE: Заказ успешно сохранен
|
||||||
|
|
||||||
autonumber 4.1
|
autonumber 4.1
|
||||||
alt Тип доставки в заказе: Самовывоз
|
alt Тип доставки в заказе: Самовывоз
|
||||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
||||||
else Тип доставки в заказе: Курьером
|
else Тип доставки в заказе: Курьером
|
||||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
||||||
else Тип доставки в заказе: ТК
|
else Тип доставки в заказе: ТК
|
||||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
||||||
end
|
end
|
||||||
|
|
||||||
autonumber 5
|
autonumber 5
|
||||||
WTIS -> kafka_1: Читает сообщения из топика
|
WTIS -> kafka_1: Читает сообщения из топика
|
||||||
WTIS -> WTIS_database: Сохраняет заказ
|
WTIS -> WTIS_database: Сохраняет заказ
|
||||||
WTIS_database -> WTIS: Заказ успешно сохранен
|
WTIS_database -> WTIS: Заказ успешно сохранен
|
||||||
WTIS -> WTIS: Проверяет условия для MVP\nсогласно настроек в wtis_settings
|
WTIS -> WTIS: Проверяет условия для MVP\nсогласно настроек в wtis_settings
|
||||||
|
|
||||||
autonumber 9.1
|
autonumber 9.1
|
||||||
alt Заказ подходит под условия OMS
|
alt Заказ подходит под условия OMS
|
||||||
WTIS -> kafka_2: Записывает заказ в топик: wtis.order_oms.created
|
WTIS -> kafka_2: Записывает заказ в топик: wtis.order_oms.created
|
||||||
else Заказ не подходит под условия OMS
|
else Заказ не подходит под условия OMS
|
||||||
WTIS -> WTIS: Продолжает процедуру автооформления\nзаказа и обогащения данными
|
WTIS -> WTIS: Продолжает процедуру автооформления\nзаказа и обогащения данными
|
||||||
WTIS -> WTIS: Конец процесса
|
WTIS -> WTIS: Конец процесса
|
||||||
end
|
end
|
||||||
|
|
||||||
autonumber 10
|
autonumber 10
|
||||||
OMS -> kafka_2: Читает событие из топика
|
OMS -> kafka_2: Читает событие из топика
|
||||||
OMS -> OMS_database: Сохраняет заказ в БД
|
OMS -> OMS_database: Сохраняет заказ в БД
|
||||||
OMS_database -> OMS: Заказ успешно сохранен
|
OMS_database -> OMS: Заказ успешно сохранен
|
||||||
|
|
||||||
OMS -> OMS: Проводит бизнес проверки
|
OMS -> OMS: Проводит бизнес проверки
|
||||||
OMS -> WTIS: Резервирует товары
|
OMS -> WTIS: Резервирует товары
|
||||||
|
|
||||||
autonumber 15.1
|
autonumber 15.1
|
||||||
alt Успешно зарезервировано
|
alt Успешно зарезервировано
|
||||||
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
||||||
else Не успешно зарезервировано
|
else Не успешно зарезервировано
|
||||||
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
||||||
WTIS -> WTIS: Конец процесса
|
WTIS -> WTIS: Конец процесса
|
||||||
end
|
end
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,66 +1,66 @@
|
|||||||
@startuml
|
@startuml
|
||||||
scale 1300x1300
|
scale 1300x1300
|
||||||
mainframe TO BE обмен по созданию заказа на сайте
|
mainframe TO BE обмен по созданию заказа на сайте
|
||||||
Actor USER
|
Actor USER
|
||||||
participant SITE
|
participant SITE
|
||||||
database SITE_database
|
database SITE_database
|
||||||
participant WTIS
|
participant WTIS
|
||||||
database WTIS_database
|
database WTIS_database
|
||||||
queue kafka_1
|
queue kafka_1
|
||||||
queue kafka_2
|
queue kafka_2
|
||||||
participant OMS
|
participant OMS
|
||||||
database OMS_database
|
database OMS_database
|
||||||
'-------------------------------------------action-------------------
|
'-------------------------------------------action-------------------
|
||||||
autonumber
|
autonumber
|
||||||
|
|
||||||
USER -> SITE: Нажимает кнопку оформить заказ
|
USER -> SITE: Нажимает кнопку оформить заказ
|
||||||
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
SITE -> SITE_database: Проводит внутренние проверки\nи сохраняет в БД
|
||||||
SITE_database -> SITE: Заказ успешно сохранен
|
SITE_database -> SITE: Заказ успешно сохранен
|
||||||
|
|
||||||
autonumber 4.1
|
autonumber 4.1
|
||||||
alt Тип доставки в заказе: Самовывоз
|
alt Тип доставки в заказе: Самовывоз
|
||||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.pickup.created
|
||||||
else Тип доставки в заказе: Курьером
|
else Тип доставки в заказе: Курьером
|
||||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.courier.created
|
||||||
else Тип доставки в заказе: ТК
|
else Тип доставки в заказе: ТК
|
||||||
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
SITE -> kafka_1: Записывает заказ в топик kafka: site.order.transport_company.created
|
||||||
end
|
end
|
||||||
|
|
||||||
autonumber 5
|
autonumber 5
|
||||||
OMS -> kafka_1: Читает сообщения из топиков
|
OMS -> kafka_1: Читает сообщения из топиков
|
||||||
OMS -> OMS: Проверяет условия для MVP
|
OMS -> OMS: Проверяет условия для MVP
|
||||||
WTIS -> kafka_1: Читает сообщения из топиков
|
WTIS -> kafka_1: Читает сообщения из топиков
|
||||||
WTIS -> WTIS: Проверяет условия для MVP
|
WTIS -> WTIS: Проверяет условия для MVP
|
||||||
|
|
||||||
autonumber 9.1
|
autonumber 9.1
|
||||||
alt Подходит под условия OMS
|
alt Подходит под условия OMS
|
||||||
WTIS -> WTIS: Не обрабатывает такой заказ
|
WTIS -> WTIS: Не обрабатывает такой заказ
|
||||||
OMS -> OMS_database: Сохраняет заказ
|
OMS -> OMS_database: Сохраняет заказ
|
||||||
OMS -> kafka_2: Записывает заказ в топик: oms.orders.sync
|
OMS -> kafka_2: Записывает заказ в топик: oms.orders.sync
|
||||||
OMS_database -> OMS: Заказ успешно сохранен
|
OMS_database -> OMS: Заказ успешно сохранен
|
||||||
WTIS -> kafka_2: Читает топик
|
WTIS -> kafka_2: Читает топик
|
||||||
WTIS -> WTIS: Создает заказ
|
WTIS -> WTIS: Создает заказ
|
||||||
WTIS -> OMS: Возвращает модель заказа через workflow
|
WTIS -> OMS: Возвращает модель заказа через workflow
|
||||||
OMS -> OMS: Проводит автооформление
|
OMS -> OMS: Проводит автооформление
|
||||||
OMS -> WTIS: Резервирует товары
|
OMS -> WTIS: Резервирует товары
|
||||||
|
|
||||||
autonumber 9.9.1
|
autonumber 9.9.1
|
||||||
alt Успешно зарезервировано
|
alt Успешно зарезервировано
|
||||||
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
WTIS -> OMS: Товары в заказе успешно зарезервированы
|
||||||
WTIS -> WTIS: Конец процесса
|
WTIS -> WTIS: Конец процесса
|
||||||
|
|
||||||
else Не успешно зарезервировано
|
else Не успешно зарезервировано
|
||||||
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
WTIS -> WTIS: Ставит задачу на менеджера, меняет мастер-систему
|
||||||
WTIS -> WTIS: Конец процесса
|
WTIS -> WTIS: Конец процесса
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
else Не подходит под условия OMS
|
else Не подходит под условия OMS
|
||||||
autonumber 10.1
|
autonumber 10.1
|
||||||
OMS -> OMS: Не обрабатывает такой заказ
|
OMS -> OMS: Не обрабатывает такой заказ
|
||||||
WTIS -> WTIS_database: Сохраняет заказ
|
WTIS -> WTIS_database: Сохраняет заказ
|
||||||
WTIS_database -> WTIS: Заказ успешно сохранен
|
WTIS_database -> WTIS: Заказ успешно сохранен
|
||||||
WTIS -> WTIS: Конец процесса
|
WTIS -> WTIS: Конец процесса
|
||||||
end
|
end
|
||||||
|
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,37 +1,37 @@
|
|||||||
@startuml
|
@startuml
|
||||||
'Параметры для интерфейсов
|
'Параметры для интерфейсов
|
||||||
skinparam interface {
|
skinparam interface {
|
||||||
backgroundColor #1a2eff
|
backgroundColor #1a2eff
|
||||||
borderColor black
|
borderColor black
|
||||||
}
|
}
|
||||||
|
|
||||||
'Параметры для компонентов
|
'Параметры для компонентов
|
||||||
skinparam component {
|
skinparam component {
|
||||||
FontSize 13
|
FontSize 13
|
||||||
ArrowFontStyle Bold
|
ArrowFontStyle Bold
|
||||||
FontName Times New Roman
|
FontName Times New Roman
|
||||||
BorderColor black
|
BorderColor black
|
||||||
BackgroundColor #e6ffef
|
BackgroundColor #e6ffef
|
||||||
ArrowFontName Courier
|
ArrowFontName Courier
|
||||||
ArrowColor #111111
|
ArrowColor #111111
|
||||||
ArrowFontColor #111111
|
ArrowFontColor #111111
|
||||||
}
|
}
|
||||||
|
|
||||||
frame Mycroft_scheme #ededed {
|
frame Mycroft_scheme #ededed {
|
||||||
|
|
||||||
database MySql #turquoise {
|
database MySql #turquoise {
|
||||||
[Sphinx]
|
[Sphinx]
|
||||||
}
|
}
|
||||||
|
|
||||||
database ElasticSearch #turquoise {
|
database ElasticSearch #turquoise {
|
||||||
[Sherlock]
|
[Sherlock]
|
||||||
}
|
}
|
||||||
|
|
||||||
[request] --> [Sherlock]
|
[request] --> [Sherlock]
|
||||||
[request] --> [Sphinx]
|
[request] --> [Sphinx]
|
||||||
[Sherlock] --> [aggregate]
|
[Sherlock] --> [aggregate]
|
||||||
[Sphinx] --> [aggregate]
|
[Sphinx] --> [aggregate]
|
||||||
[aggregate] --> [csv_files]: save
|
[aggregate] --> [csv_files]: save
|
||||||
|
|
||||||
}
|
}
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,38 +1,38 @@
|
|||||||
@startuml
|
@startuml
|
||||||
'Параметры для интерфейсов
|
'Параметры для интерфейсов
|
||||||
skinparam interface {
|
skinparam interface {
|
||||||
backgroundColor #1a2eff
|
backgroundColor #1a2eff
|
||||||
borderColor black
|
borderColor black
|
||||||
}
|
}
|
||||||
|
|
||||||
'Параметры для компонентов
|
'Параметры для компонентов
|
||||||
skinparam component {
|
skinparam component {
|
||||||
FontSize 13
|
FontSize 13
|
||||||
ArrowFontStyle Bold
|
ArrowFontStyle Bold
|
||||||
FontName Times New Roman
|
FontName Times New Roman
|
||||||
BorderColor black
|
BorderColor black
|
||||||
BackgroundColor #e6ffef
|
BackgroundColor #e6ffef
|
||||||
ArrowFontName Courier
|
ArrowFontName Courier
|
||||||
ArrowColor #111111
|
ArrowColor #111111
|
||||||
ArrowFontColor #111111
|
ArrowFontColor #111111
|
||||||
}
|
}
|
||||||
|
|
||||||
frame Sherlock_scheme #ededed {
|
frame Sherlock_scheme #ededed {
|
||||||
|
|
||||||
database "Elasticsearch" #turquoise {
|
database "Elasticsearch" #turquoise {
|
||||||
[database]
|
[database]
|
||||||
}
|
}
|
||||||
[user_request] -u-> http_request_autocomplete
|
[user_request] -u-> http_request_autocomplete
|
||||||
[user_request] -u-> http_request_full_text
|
[user_request] -u-> http_request_full_text
|
||||||
http_request_autocomplete -u-> [database]
|
http_request_autocomplete -u-> [database]
|
||||||
http_request_full_text -u-> [database]
|
http_request_full_text -u-> [database]
|
||||||
|
|
||||||
note top of http_request_full_text: POST /api/v1/product
|
note top of http_request_full_text: POST /api/v1/product
|
||||||
note top of http_request_autocomplete: POST /api/v1/autocomplete
|
note top of http_request_autocomplete: POST /api/v1/autocomplete
|
||||||
|
|
||||||
[database] -u-> [filtering, sorting]
|
[database] -u-> [filtering, sorting]
|
||||||
[filtering, sorting] -u-> [response_for_user]
|
[filtering, sorting] -u-> [response_for_user]
|
||||||
|
|
||||||
[response_for_user] -u-> http_response
|
[response_for_user] -u-> http_response
|
||||||
}
|
}
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,68 +1,68 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe api/v1/autocomplete Общая схема
|
mainframe api/v1/autocomplete Общая схема
|
||||||
Actor user
|
Actor user
|
||||||
participant BackendSite
|
participant BackendSite
|
||||||
participant Sherlock
|
participant Sherlock
|
||||||
Database ElasticSearch
|
Database ElasticSearch
|
||||||
|
|
||||||
user -> BackendSite: Вводит запрос в поисковую строку
|
user -> BackendSite: Вводит запрос в поисковую строку
|
||||||
BackendSite -> BackendSite: Обработка запроса на бэкенде\n сайта и формирование запроса\nдля Sherlock
|
BackendSite -> BackendSite: Обработка запроса на бэкенде\n сайта и формирование запроса\nдля Sherlock
|
||||||
BackendSite -> Sherlock: REST POST api/v1/autocomplete
|
BackendSite -> Sherlock: REST POST api/v1/autocomplete
|
||||||
Sherlock -> Sherlock: Перевод запроса\nна второй язык
|
Sherlock -> Sherlock: Перевод запроса\nна второй язык
|
||||||
Sherlock -> Sherlock: Преобразование запроса\n в структуру и формирование\nзапроса для ElasticSearch
|
Sherlock -> Sherlock: Преобразование запроса\n в структуру и формирование\nзапроса для ElasticSearch
|
||||||
|
|
||||||
note over Sherlock
|
note over Sherlock
|
||||||
Отправка запроса в
|
Отправка запроса в
|
||||||
ElasticSearch с доп
|
ElasticSearch с доп
|
||||||
сортировкой по категориям
|
сортировкой по категориям
|
||||||
из Спектра
|
из Спектра
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
|
|
||||||
alt ElasticSearch ничего не вернул
|
alt ElasticSearch ничего не вернул
|
||||||
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
||||||
ElasticSearch --> Sherlock: Получен пустой ответ со всех 8-и запросов
|
ElasticSearch --> Sherlock: Получен пустой ответ со всех 8-и запросов
|
||||||
|
|
||||||
note over Sherlock
|
note over Sherlock
|
||||||
Отправляются доп.запрос
|
Отправляются доп.запрос
|
||||||
в ElasticSearch с меньшим
|
в ElasticSearch с меньшим
|
||||||
процентом вхождения
|
процентом вхождения
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
||||||
ElasticSearch --> Sherlock: Получен пустой ответ со всех 8-и запросов
|
ElasticSearch --> Sherlock: Получен пустой ответ со всех 8-и запросов
|
||||||
|
|
||||||
Sherlock --> BackendSite: Получен пустой ответ
|
Sherlock --> BackendSite: Получен пустой ответ
|
||||||
Sherlock --> user: Пользователь получает страницу:\nРезультаты не найдены
|
Sherlock --> user: Пользователь получает страницу:\nРезультаты не найдены
|
||||||
|
|
||||||
else Найдены товары
|
else Найдены товары
|
||||||
|
|
||||||
|
|
||||||
alt Есть товары спектр
|
alt Есть товары спектр
|
||||||
note over ElasticSearch
|
note over ElasticSearch
|
||||||
ЕСЛИ хоть один из четырех индексов
|
ЕСЛИ хоть один из четырех индексов
|
||||||
отдал ответ, ТО он отдается на бэкенд
|
отдал ответ, ТО он отдается на бэкенд
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
||||||
|
|
||||||
note over ElasticSearch
|
note over ElasticSearch
|
||||||
Категории спектр поднимаются
|
Категории спектр поднимаются
|
||||||
наверх И товары внутри них
|
наверх И товары внутри них
|
||||||
сортируются по скорингу
|
сортируются по скорингу
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
else Товаров спектр не найдено
|
else Товаров спектр не найдено
|
||||||
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
Sherlock -> ElasticSearch: 8 запросов в 4 индекса: manufacturers,\ntagpage, categories, products на двух языках (RU, EN)
|
||||||
note over ElasticSearch
|
note over ElasticSearch
|
||||||
Товары сортируются
|
Товары сортируются
|
||||||
по скорингу
|
по скорингу
|
||||||
endnote
|
endnote
|
||||||
end
|
end
|
||||||
|
|
||||||
ElasticSearch --> Sherlock: Передает отсортированный\nсписок товаров
|
ElasticSearch --> Sherlock: Передает отсортированный\nсписок товаров
|
||||||
Sherlock --> BackendSite: Список товаров
|
Sherlock --> BackendSite: Список товаров
|
||||||
BackendSite --> user: Пользователь получает страницу:\nРезультаты поиска
|
BackendSite --> user: Пользователь получает страницу:\nРезультаты поиска
|
||||||
|
|
||||||
end
|
end
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,55 +1,55 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe api/v1/filters Общая схема
|
mainframe api/v1/filters Общая схема
|
||||||
Actor user
|
Actor user
|
||||||
participant BackendSite
|
participant BackendSite
|
||||||
participant Sherlock
|
participant Sherlock
|
||||||
Database ElasticSearch
|
Database ElasticSearch
|
||||||
|
|
||||||
user -> BackendSite: Вводит запрос в поисковую строку
|
user -> BackendSite: Вводит запрос в поисковую строку
|
||||||
BackendSite -> BackendSite: Обработка запроса на бэкенде\n сайта и формирование запроса\nдля Sherlock
|
BackendSite -> BackendSite: Обработка запроса на бэкенде\n сайта и формирование запроса\nдля Sherlock
|
||||||
|
|
||||||
BackendSite -> Sherlock: REST POST api/v1/filters
|
BackendSite -> Sherlock: REST POST api/v1/filters
|
||||||
Sherlock -> Sherlock: Преобразование запроса\nв структуру и формирование\nзапроса для ElasticSearch
|
Sherlock -> Sherlock: Преобразование запроса\nв структуру и формирование\nзапроса для ElasticSearch
|
||||||
|
|
||||||
note over Sherlock
|
note over Sherlock
|
||||||
Отправка запроса в
|
Отправка запроса в
|
||||||
ElasticSearch с доп
|
ElasticSearch с доп
|
||||||
сортировкой по категориям
|
сортировкой по категориям
|
||||||
из Спектра
|
из Спектра
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
|
|
||||||
alt ElasticSearch ничего не вернул
|
alt ElasticSearch ничего не вернул
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search
|
Sherlock -> ElasticSearch: REST GET products/_search
|
||||||
ElasticSearch --> Sherlock: Получен пустой ответ
|
ElasticSearch --> Sherlock: Получен пустой ответ
|
||||||
|
|
||||||
note over Sherlock
|
note over Sherlock
|
||||||
Отправляется доп.запрос
|
Отправляется доп.запрос
|
||||||
в ElasticSearch с меньшим
|
в ElasticSearch с меньшим
|
||||||
процентом вхождения
|
процентом вхождения
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search
|
Sherlock -> ElasticSearch: REST GET products/_search
|
||||||
ElasticSearch --> Sherlock: Получен пустой ответ
|
ElasticSearch --> Sherlock: Получен пустой ответ
|
||||||
Sherlock --> BackendSite: Получен пустой ответ
|
Sherlock --> BackendSite: Получен пустой ответ
|
||||||
Sherlock --> user: Пользователь получает страницу:\nРезультаты не найдены
|
Sherlock --> user: Пользователь получает страницу:\nРезультаты не найдены
|
||||||
|
|
||||||
else Найдены товары
|
else Найдены товары
|
||||||
alt Есть товары спектр
|
alt Есть товары спектр
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search
|
Sherlock -> ElasticSearch: REST GET products/_search
|
||||||
note over ElasticSearch
|
note over ElasticSearch
|
||||||
Категории спектр
|
Категории спектр
|
||||||
поднимаются наверх
|
поднимаются наверх
|
||||||
endnote
|
endnote
|
||||||
else Товаров спектр не найдено
|
else Товаров спектр не найдено
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search
|
Sherlock -> ElasticSearch: REST GET products/_search
|
||||||
end
|
end
|
||||||
|
|
||||||
ElasticSearch --> Sherlock: Передает список\nкатегорий и фильтров
|
ElasticSearch --> Sherlock: Передает список\nкатегорий и фильтров
|
||||||
|
|
||||||
Sherlock --> BackendSite: Список категорий и фильтров
|
Sherlock --> BackendSite: Список категорий и фильтров
|
||||||
|
|
||||||
BackendSite --> user: Пользователь получает фильтры\nна странице: Результаты поиска
|
BackendSite --> user: Пользователь получает фильтры\nна странице: Результаты поиска
|
||||||
|
|
||||||
end
|
end
|
||||||
@enduml
|
@enduml
|
||||||
@@ -1,64 +1,64 @@
|
|||||||
@startuml
|
@startuml
|
||||||
mainframe api/v1/products Общая схема
|
mainframe api/v1/products Общая схема
|
||||||
Actor user
|
Actor user
|
||||||
participant BackendSite
|
participant BackendSite
|
||||||
participant Sherlock
|
participant Sherlock
|
||||||
Database ElasticSearch
|
Database ElasticSearch
|
||||||
|
|
||||||
user -> BackendSite: Вводит запрос в поисковую строку
|
user -> BackendSite: Вводит запрос в поисковую строку
|
||||||
BackendSite -> BackendSite: Обработка запроса на бэкенде\n сайта и формирование запроса\nдля Sherlock
|
BackendSite -> BackendSite: Обработка запроса на бэкенде\n сайта и формирование запроса\nдля Sherlock
|
||||||
BackendSite -> Sherlock: REST POST api/v1/products
|
BackendSite -> Sherlock: REST POST api/v1/products
|
||||||
Sherlock -> Sherlock: Перевод запроса\nна второй язык
|
Sherlock -> Sherlock: Перевод запроса\nна второй язык
|
||||||
Sherlock -> Sherlock: Преобразование запроса\n в структуру и формирование\nзапроса для ElasticSearch
|
Sherlock -> Sherlock: Преобразование запроса\n в структуру и формирование\nзапроса для ElasticSearch
|
||||||
|
|
||||||
note over Sherlock
|
note over Sherlock
|
||||||
Отправка запроса в
|
Отправка запроса в
|
||||||
ElasticSearch с доп
|
ElasticSearch с доп
|
||||||
сортировкой по категориям
|
сортировкой по категориям
|
||||||
из Спектра
|
из Спектра
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
alt ElasticSearch ничего не вернул
|
alt ElasticSearch ничего не вернул
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||||||
ElasticSearch --> Sherlock: Получен пустой ответ
|
ElasticSearch --> Sherlock: Получен пустой ответ
|
||||||
|
|
||||||
note over Sherlock
|
note over Sherlock
|
||||||
Отправляется доп.запрос
|
Отправляется доп.запрос
|
||||||
в ElasticSearch с меньшим
|
в ElasticSearch с меньшим
|
||||||
процентом вхождения
|
процентом вхождения
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||||||
ElasticSearch --> Sherlock: Получен пустой ответ
|
ElasticSearch --> Sherlock: Получен пустой ответ
|
||||||
Sherlock --> BackendSite: Получен пустой ответ
|
Sherlock --> BackendSite: Получен пустой ответ
|
||||||
Sherlock --> user: Пользователь получает страницу:\nРезультаты не найдены
|
Sherlock --> user: Пользователь получает страницу:\nРезультаты не найдены
|
||||||
|
|
||||||
else Найдены товары
|
else Найдены товары
|
||||||
|
|
||||||
alt Есть товары спектр
|
alt Есть товары спектр
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||||||
note over ElasticSearch
|
note over ElasticSearch
|
||||||
Категории спектр поднимаются
|
Категории спектр поднимаются
|
||||||
наверх И товары внутри них
|
наверх И товары внутри них
|
||||||
сортируются по скорингу
|
сортируются по скорингу
|
||||||
endnote
|
endnote
|
||||||
|
|
||||||
else Товаров спектр не найдено
|
else Товаров спектр не найдено
|
||||||
|
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search RU
|
Sherlock -> ElasticSearch: REST GET products/_search RU
|
||||||
Sherlock -> ElasticSearch: REST GET products/_search EN
|
Sherlock -> ElasticSearch: REST GET products/_search EN
|
||||||
note over ElasticSearch
|
note over ElasticSearch
|
||||||
Товары сортируются
|
Товары сортируются
|
||||||
по скорингу
|
по скорингу
|
||||||
endnote
|
endnote
|
||||||
end
|
end
|
||||||
|
|
||||||
ElasticSearch --> Sherlock: Передает отсортированный\nсписок товаров
|
ElasticSearch --> Sherlock: Передает отсортированный\nсписок товаров
|
||||||
Sherlock --> BackendSite: Список товаров
|
Sherlock --> BackendSite: Список товаров
|
||||||
BackendSite --> user: Пользователь получает страницу:\nРезультаты поиска
|
BackendSite --> user: Пользователь получает страницу:\nРезультаты поиска
|
||||||
|
|
||||||
end
|
end
|
||||||
@enduml
|
@enduml
|
||||||
Reference in New Issue
Block a user