Перейти к содержанию

Модули системы

FuelProcessing состоит из нескольких модулей, каждый из которых отвечает за определённую функциональность.

Структура модулей

FuelProcessing/
├── FuelProcessing.Core/          # Domain Layer
├── FuelProcessing.Data/          # Data Access Layer
├── FuelProcessing.Web/           # MVC Web Interface
├── FuelProcessing.ClientApi/     # REST API
├── FuelProcessing.TransactionHandler/  # Background Processing
└── FuelProcessing.ReportGenerationHandler/  # Reports

Сравнение модулей

Модуль Тип Назначение Протокол
Core Class Library Доменная модель
Data Class Library Репозитории, API клиенты
Web Web App Пользовательский интерфейс HTTP/MVC
ClientApi Web API Внешние интеграции HTTP/REST
TransactionHandler Console App Фоновая обработка Quartz.NET
ReportHandler Web App Генерация отчётов RabbitMQ

Зависимости между модулями

graph TD
    CORE[FuelProcessing.Core<br/>Domain Layer]
    DATA[FuelProcessing.Data<br/>Data Access Layer]

    CORE --> DATA

    WEB[FuelProcessing.Web<br/>MVC Interface]
    API[FuelProcessing.ClientApi<br/>REST API]
    TH[TransactionHandler<br/>Background Jobs]
    RH[ReportHandler<br/>Report Generator]

    WEB --> DATA
    API --> DATA
    TH --> DATA
    RH --> DATA

Domain Layer (Core)

Подробнее

Библиотека доменной модели и бизнес-логики.

Ключевые сущности: - Card — топливная карта - DirectContract — прямой договор - FinanceTransaction — транзакция - Limit — лимиты на расход - Company — компания - User — пользователь

Статусы и перечисления: - CardStatus — статусы карт - BlockStatus — статусы блокировки - VinkType — типы ВИНК - OperationType — типы операций

Data Access Layer

Подробнее

Репозитории, API клиенты, сервисы данных.

Компоненты: - DataContext — Entity Framework DbContext - Репозитории (CardRepository, CompanyRepository, ...) - API клиенты для 11 ВИНК - Сервисы бизнес-логики

Web Interface

Подробнее

ASP.NET Core MVC веб-приложение.

Функциональность: - Управление пользователями и ролями - CRUD справочников - Управление картами и лимитами - Генерация отчётов - Карта АЗС

Контроллеры: 60+ контроллеров для различных функций

TerminalApi

Подробнее

REST API для терминалов на АЗС.

Назначение: - Авторизация операторов - Создание транзакций - Управление ценами на топливо - Офлайн режим работы

Endpoints: - /api/terminal/account/auth — авторизация оператора - /api/terminal/fuel/list — список видов топлива - /api/terminal/transactions/create — создание транзакции - /api/terminal/offlinetransaction/create — офлайн транзакции

ClientApi

Подробнее

REST API для внешних интеграций.

Версии: - v1 — базовая версия - v2 — улучшенная версия (рекомендуется)

Endpoints: - /api/v2/account/authuser — авторизация - /api/v2/card/cards — карты - /api/v2/limit/setcardlimits — лимиты - /api/v2/transaction/gettransactions — транзакции

TransactionHandler

Подробнее

Фоновый сервис обработки транзакций.

Функции: - Расчёт транзакций (каждые 5 минут) - Синхронизация с ВИНК - Расчёт балансов - Обработка лимитов

Технология: Quartz.NET Scheduler

ReportGenerationHandler

Подробнее

Микросервис генерации отчётов.

Типы отчётов: 15+ типов отчётов

Технология: MassTransit + RabbitMQ