generated from PenaSide/GolangTemplate
182 lines
10 KiB
Markdown
182 lines
10 KiB
Markdown
# Диаграммы последовательности и зависимостей
|
||
|
||
## UseCase оплата корзины (успешно)
|
||
|
||
```plantuml
|
||
participant Frontend
|
||
participant CustomerService
|
||
participant HubAdminService
|
||
participant DiscountService
|
||
database CustomerServiceDB
|
||
|
||
Frontend -> CustomerService : Запрос на оплату
|
||
CustomerService -> CustomerServiceDB : Поиск аккаунта по ID пользователья единой авторизации
|
||
CustomerService <-- CustomerServiceDB : Найденный аккаунт
|
||
CustomerService -> HubAdminService : Получение тарифов из массива id тарифов в корзине
|
||
CustomerService <-- HubAdminService : Список тарифов
|
||
CustomerService -> CustomerService : Подсчитывается сумма тарифов
|
||
CustomerService <-- CustomerService : Сумма тарифов
|
||
CustomerService -> DiscountService : Приминение скидок
|
||
CustomerService <-- DiscountService : Сформированная цена после применения скидок
|
||
CustomerService -> CustomerService : Проверка на наличие средств
|
||
CustomerService <-- CustomerService : Средств достаточно
|
||
CustomerService -> CustomerServiceDB : Списание средств с кошелька
|
||
CustomerService <-- CustomerServiceDB : Обновлённый аккаунт
|
||
CustomerService -> CustomerServiceDB : Запись в историю успех оплаты (ошибка игнорируется)
|
||
CustomerService <-- CustomerServiceDB : Записанная история
|
||
CustomerService -> CustomerServiceDB : Очистка корзины
|
||
CustomerService <-- CustomerServiceDB : Обновлённый аккаунт
|
||
Frontend <-- CustomerService : Ответ об успешной оплате корзины
|
||
```
|
||
|
||
---
|
||
|
||
## UseCase оплата корзины (недостаточно средств)
|
||
|
||
```plantuml
|
||
participant Frontend
|
||
participant CustomerService
|
||
participant HubAdminService
|
||
participant DiscountService
|
||
database CustomerServiceDB
|
||
|
||
Frontend -> CustomerService : Запрос на оплату
|
||
CustomerService -> CustomerServiceDB : Поиск аккаунта по ID пользователья единой авторизации
|
||
CustomerService <-- CustomerServiceDB : Найденный аккаунт
|
||
CustomerService -> HubAdminService : Получение тарифов из массива id тарифов в корзине
|
||
CustomerService <-- HubAdminService : Список тарифов
|
||
CustomerService -> CustomerService : Подсчитывается сумма тарифов
|
||
CustomerService <-- CustomerService : Сумма тарифов
|
||
CustomerService -> DiscountService : Приминение скидок
|
||
CustomerService <-- DiscountService : Сформированная цена после применения скидок
|
||
CustomerService -> CustomerService : Проверка на наличие средств
|
||
CustomerService <-- CustomerService : Средств не достаточно
|
||
Frontend <-- CustomerService : Ответ об ошибке по причине нехватки средств (insufficient funds: 50)
|
||
```
|
||
|
||
---
|
||
|
||
## UseCase получение ссылки на оплату для пополнения средств в корзине (успешно)
|
||
|
||
```plantuml
|
||
participant Frontend
|
||
participant CustomerService
|
||
participant PaymentService
|
||
database CustomerServiceDB
|
||
|
||
Frontend -> CustomerService : Запрос на получение ссылки
|
||
CustomerService -> CustomerService : Определение способа оплаты
|
||
CustomerService <-- CustomerService : Успешно определено
|
||
CustomerService -> PaymentService : Запрос на получение платёжной ссылки
|
||
CustomerService <-- PaymentService : Платёжная ссылка
|
||
Frontend <-- CustomerService : Платёжная ссылка
|
||
```
|
||
|
||
---
|
||
|
||
## UseCase изменения валюты в кошельке (успешно)
|
||
|
||
```plantuml
|
||
participant Frontend
|
||
participant CustomerService
|
||
participant CbrfService
|
||
database CustomerServiceDB
|
||
|
||
Frontend -> CustomerService : Запрос на изменения валюты
|
||
CustomerService -> CustomerServiceDB : Получение аккаунта по ID пользователья единой авторизации
|
||
CustomerService <-- CustomerServiceDB : Найденный аккаунт
|
||
CustomerService -> CbrfService : Перевод валюты с одной на другую
|
||
CustomerService <-- CbrfService : Результат перевода валюты
|
||
CustomerService -> CustomerServiceDB : Обновление кошелька аккаунта
|
||
CustomerService <-- CustomerServiceDB : Обновлённый аккаунт
|
||
Frontend <-- CustomerService : Обновлённый аккаунт
|
||
```
|
||
|
||
---
|
||
|
||
## UseCase регистрация аккаунта (успешно)
|
||
|
||
```plantuml
|
||
participant Frontend
|
||
participant CustomerService
|
||
participant AuthService
|
||
database CustomerServiceDB
|
||
|
||
Frontend -> CustomerService : Запрос на регистрацию аккаунта
|
||
CustomerService -> CustomerServiceDB : Поиск аккаунта по ID пользователя единой авторизации
|
||
CustomerService <-- CustomerServiceDB : Ошибка: аккаунт не найден
|
||
CustomerService -> AuthService : Поиск пользователя единой авторизации по ID
|
||
CustomerService <-- AuthService : Найденный пользователь
|
||
CustomerService -> CustomerServiceDB : Создание аккаунта с прикрученным \nID пользователя единой авторизации
|
||
CustomerService <-- CustomerServiceDB : Созданный аккаунт
|
||
Frontend <-- CustomerService : Созданный аккаунт
|
||
```
|
||
|
||
---
|
||
|
||
## UseCase уведомление об успешной оплате (успешно, id платежей не равны)
|
||
|
||
```plantuml
|
||
participant PaymentService
|
||
participant CustomerService
|
||
database CustomerServiceDB
|
||
|
||
PaymentService -> CustomerService : Запрос отправки уведомления об успешной оплате
|
||
CustomerService -> CustomerServiceDB : Поиск аккаунта по ID пользователя единой авторизации
|
||
CustomerService <-- CustomerServiceDB : Найденный аккаунт
|
||
CustomerService -> CustomerService : Сравнение ID платежа с прошлым
|
||
CustomerService <-- CustomerService : ID платежей не равны
|
||
CustomerService -> CustomerServiceDB : Изменение кошелька аккаунта
|
||
CustomerService <-- CustomerServiceDB : Обновлённый аккаунт
|
||
CustomerService -> CustomerServiceDB : Создание истории об успешном пополнении средств
|
||
CustomerService <-- CustomerServiceDB : Созданная история
|
||
PaymentService <-- CustomerService : Успешный ответ
|
||
```
|
||
|
||
---
|
||
|
||
## UseCase уведомление об успешной оплате (успешно, id платежей равны)
|
||
|
||
```plantuml
|
||
participant PaymentService
|
||
participant CustomerService
|
||
database CustomerServiceDB
|
||
|
||
PaymentService -> CustomerService : Запрос отправки уведомления об успешной оплате
|
||
CustomerService -> CustomerServiceDB : Поиск аккаунта по ID пользователя единой авторизации
|
||
CustomerService <-- CustomerServiceDB : Найденный аккаунт
|
||
CustomerService -> CustomerService : Сравнение ID платежа с прошлым
|
||
CustomerService <-- CustomerService : ID платежей равны
|
||
PaymentService <-- CustomerService : Успешный ответ
|
||
```
|
||
|
||
## Диаграмма зависимостей
|
||
|
||
```plantuml
|
||
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
|
||
|
||
Container(CustomerService, "Customer Service", "Golang", "Сервис customer")
|
||
Container(AuthService, "Auth Service", "NodeJS", "Микросервис единой авторизации")
|
||
Container(DiscountService, "Discount Service", "Golang", "Микросервис скидок")
|
||
Container(CbrfService, "CBRF Worker Service", "Golang", "Микросервис по выдаче и перевода курсов валют")
|
||
Container(PaymentService, "Payment Service", "Golang", "Платёжный микросервис")
|
||
Container(HubadminService, "Hub admin Service", "NodeJS", "Севрис управления тарифами и привелегиями")
|
||
|
||
ContainerDb(CustomerDB, "Customer Service Database", "MongoDB", "Хранит информацию об аккаунтах")
|
||
ContainerDb(AuthServiceDB, "Auth Service Database", "MongoDB", "Хранит информацию о пользователях и сессиях")
|
||
ContainerDb(CbrfServiceDB, "CBRF Worker Database", "MongoDB", "Хранит информацию о курсах валют")
|
||
ContainerDb(PaymentServiceDB, "Payment Service Database", "MongoDB", "Хранит информацию о платежах и их состоянии")
|
||
ContainerDb(HubadminServiceDB, "Hubadmin service Database", "MongoDB", "Хранит информацию о тарифах и привелегиях")
|
||
|
||
Rel(CustomerService, AuthService, "Использует для получения актуальной информации о пользователе")
|
||
Rel(CustomerService, CbrfService, "Использует для перевода валюты с одного курса на другой")
|
||
Rel(CustomerService, PaymentService, "Использует для проведения оплаты, получения платёжной ссылки и уведомления об успешной/не_успешной оплате")
|
||
Rel(CustomerService, HubadminService, "Использует для получения информации о тарифах")
|
||
Rel(CustomerService, DiscountService, "Использует для приминения скидок")
|
||
|
||
Rel_R(CustomerService, CustomerDB, "Читает/Записывает")
|
||
Rel_R(AuthService, AuthServiceDB, "Читает/Записывает")
|
||
Rel_R(CbrfService, CbrfServiceDB, "Читает/Записывает")
|
||
Rel_R(PaymentService, PaymentServiceDB, "Читает/Записывает")
|
||
Rel_R(HubadminService, HubadminServiceDB, "Читает/Записывает")
|
||
``` |