-
Notifications
You must be signed in to change notification settings - Fork 2
Architect
Проект StarBank — это рекомендательная система для персонализированного подбора банковских продуктов на основе транзакций пользователей.
- Контроллеры управляют запросами пользователей.
- Сервисы реализуют бизнес-логику.
- Обработчики правил проверяют условия рекомендаций.
- Репозитории управляют данными в БД.
- Модели описывают структуру данных.
- Telegram Bot обрабатывает запросы пользователей и взаимодействует с сервисом рекомендаций.
Контроллеры обеспечивают взаимодействие API с клиентами и управляют обработкой запросов.
-
RecommendationController- Обрабатывает запросы на получение рекомендаций. -
RuleController- Управляет динамическими правилами рекомендаций. -
ManagementController- Позволяет очищать кеш и получать информацию о сервисе.
Подробное описание классов и методов контроллеров
Сервисы реализуют бизнес-логику работы системы.
-
RecommendationService- Интерфейс для работы с рекомендациями. -
RecommendationServiceImpl- Реализация сервиса рекомендаций, проверяет правила и подбирает продукты.
Подробное описание классов и методов RecommendationService
-
RuleService- Интерфейс управления правилами. -
RuleServiceImpl- Реализует динамическую логику проверки правил и их хранения.
Подробное описание классов и методов RuleService
Каждый обработчик отвечает за проверку определённого правила.
-
RuleHandler- Интерфейс для всех обработчиков правил. -
RuleMasterHandler- Базовый класс с общей логикой работы с транзакциями. -
UserOfHandler- Проверяет, использует ли пользователь продукт. -
ActiveUserOfHandler- Проверяет активность пользователя по количеству транзакций. -
TransactionSumCompareHandler- Сравнивает сумму транзакций с указанным значением. -
TransactionSumCompareDepositWithdrawHandler- Сравнивает суммы пополнений и расходов.
Подробное описание классов и методов Обработчиков RuleHandlers
Отвечают за работу с базой данных.
-
UserRepository- Получает данные о пользователях. -
TransactionRepository- Анализирует транзакции пользователей. -
RuleSetRepository- Работает с наборами правил. -
RuleStatRepository- Ведёт статистику срабатывания правил.
Подробное описание классов и методов RecommendationService
Определяют основные структуры данных.
-
User- Модель пользователя. -
Product- Модель банковского продукта. -
Transaction- Модель транзакции пользователя. -
Recommendation- Описывает рекомендацию. -
Rule- Определяет динамическое правило. -
RuleSet- Группа правил для одного продукта. -
RuleStat- Статистика срабатываний правил.
Подробное описание классов и методов моделей H2 и JPA
Бот отвечает за обработку запросов пользователей через Telegram и взаимодействует с системой рекомендаций.
-
TelegramBot- Основной обработчик команд бота. -
BotService- Интерфейс для взаимодействия с ботом. -
TelegramBotServiceImpl- Реализация логики работы бота. -
Обработчики команд:
/start,/help,/recommend.
Подробное описание Telegram Bot
-
application.properties- Основные настройки сервиса (БД, кэширование, Telegram Bot). -
changeset-db-rules.xml- Liquibase-скрипты для работы с динамическими правилами.