https://github.com/kozjulia/limit-integration
Limit service
https://github.com/kozjulia/limit-integration
flyway java jpa mapstruct maven openfeign postgresql springboot swagger
Last synced: 12 months ago
JSON representation
Limit service
- Host: GitHub
- URL: https://github.com/kozjulia/limit-integration
- Owner: kozjulia
- Created: 2024-12-07T18:49:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-07T23:16:19.000Z (over 1 year ago)
- Last Synced: 2024-12-08T00:18:32.213Z (over 1 year ago)
- Topics: flyway, java, jpa, mapstruct, maven, openfeign, postgresql, springboot, swagger
- Language: Java
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Сервис интеграции сервиса лимитов, платежного сервиса и сервиса продуктов
_______
Приложение **умеет** делать следующее:
- Для каждого юзера в БД хранится дневной лимит возможных платежей (первоначально 10000.00. Считаем, что раз в несколько месяцев он может меняться);
- В 00.00 каждого дня лимит для всех пользователей должен быть сброшен;
- Про успешном проведении платежа лимит должен быть уменьшен на соответствующую сумму;
- Если вдруг платеж по какой-то причине не прошел, то восстанавливается списанный лимит;
- В БД храним лимиты для юзеров, которые были созданы в сервисе юзеров;
- При запросе лимита с ID, который отсутствует в БД, создаем новую запись под него со стандартным значением лимита;
- Запрашивать продукты у платежного сервиса (клиент кидает запрос в платежный сервис, платежный сервис запрашивает продукты клиента у сервиса продуктов и возвращает клиенту результат);
- В процессе исполнения платежа доступен выбор продукта, проверку его существования и достаточности средств на нем;
- Возвращать ошибки клиенту о проблемах как на стороне платежного сервиса, так и на стороне сервиса продуктов.
-------
Приложение написано на **Java**, использует **Spring Boot**, **Maven**, **Flyway**, **OpenFeign**, **JPA**, **Swagger**, **Mapstruct**
данные хранятся в БД **PostgreSQL**.
## Swagger
Платежный сервис:
http://localhost:8080/swagger-ui/index.html
Сервис продуктов:
http://localhost:8081/swagger-ui/index.html
Сервис лимитов:
http://localhost:8082/swagger-ui/index.html