Все модули

Gamification

Фреймворк геймификации: баллы, медали, серии активности, таблица лидеров — всё конфигурируется в metadata.

Возможности

Что умеет модуль

Транзакции баллов

GameTransaction: points, rule, track, status pending/completed/cancelled/converted; linkParent на источник.

Медали с rarity

GameEarnedBadge с дедупликацией; rarity legendary=100, epic=50, rare=25, uncommon=10, common=5.

Серии активности

GameStreak: daily/weekly/monthly, counter, expiresAt, threshold, modifierValue; ExpireStreaks каждые 15 мин.

Metadata-driven конфигурация

tracksMeta, rulesMeta, badges, entityProcessors в app/gamification.json — без правки кода базового модуля.

Глобальный AfterSave-хук

GamificationProcessorHook читает entityProcessors[entityType] и вызывает process() + streakCalculator.calculate().

Абстрактные базовые классы

AbstractGamificationProcessor и AbstractStreakCalculator — потребляющие модули наследуются и пишут только специфику.

Дашлеты Leaderboard и BadgeHonorBoard

Агрегация по GameReportingPeriod с change indicators; группировка медалей по пользователям с rarity-скорингом.

Модуль BPM2B base gamification — это фреймворк геймификации для платформы BPM2B. Он предоставляет сущности (транзакции баллов, медали, серии активности, отчётные периоды), абстрактные классы и интерфейсы; конкретные процессоры начисления баллов и условия выдачи медалей реализуются в потребляющих модулях через декларативные настройки в metadata.

Основные функциональные возможности:

  • Сущность GameTransaction: транзакция начисления / списания баллов — points (float), rule, track, статус pending / completed / cancelled / converted и parent (linkParent на сущность-источник баллов).
  • Сущность GameEarnedBadge: заработанная медаль — badge, track, earnedAt, статус active / revoked; дедупликация по badge + user.
  • Сущность GameStreak: серия активности — intervalType (daily / weekly / monthly), counter, expiresAt, modifierValue, threshold; статус active → expired или completed.
  • Metadata-driven конфигурация: вся настройка треков, правил и медалей в app/gamification.jsontracksMeta, rulesMeta, badges с локализованными именами (nameEn / nameRu / nameKz), иконками, цветами и условиями получения; entityProcessors маппит entityType → класс процессора.
  • Глобальный AfterSave-хук: GamificationProcessorHook по любой сущности читает app.gamification.entityProcessors[entityType], создаёт процессор через InjectableFactory, вызывает process() и затем streakCalculator.calculate().
  • Абстрактные базовые классы: AbstractGamificationProcessor (createTransaction, hasTransaction, awardBadge, hasBadge, getTotalPoints, getOrCreateStreak), AbstractStreakCalculator (findActiveStreak, updateStreak, calculateExpiryDate) — потребляющие модули наследуются и реализуют только специфическую логику.
  • Истечение серий: ScheduledJob ExpireStreaks каждые 15 минут переводит active-серии с истёкшим expiresAt в expired.
  • Дашлеты Leaderboard и Badge Honor Board: GET /Leaderboard агрегирует транзакции по активному GameReportingPeriod и сравнивает с предыдущим (change indicators); GET /BadgeHonorBoard группирует медали по пользователям с rarity-скорингом (legendary=100, epic=50, rare=25, uncommon=10, common=5).

Модуль предназначен как платформа для построения геймифицированных сценариев в любом проекте — продажи, поддержка клиентов, обучение, проектные команды. Внешних зависимостей нет; конкретные модули добавляют свои треки и процессоры через стандартные точки расширения metadata.

Совместимо с платформой версии 9.1.0+
Связаться

Готовы автоматизировать процессы?

Покажем работу системы на ваших данных за 30 минут. Расскажем, как окупится в вашей отрасли, и подберём конфигурацию под ваши процессы.

Email
info@bpm2b.ru
Москва
+7 (499) 113-22-35
Россия
8 (800) 551-91-16
Компания
ООО «Адм Про»

Мы свяжемся в течение 24 часов. Данные используем только для обработки заявки.