Назначена значок на основе множественного назначения значков

Для кастомного триггера, я думаю, вы сможете взять запрос Campaigner и немного доработать его, чтобы он работал с бейджами вместо приглашений.

Вот пример для получения 5 бейджей «Badge 108», который можно настроить на ежедневное обновление.

SELECT u.id user_id, current_timestamp granted_at 
FROM users u 
WHERE u.id IN ( 
    SELECT ub.user_id 
    FROM user_badges ub 
    WHERE ub.badge_id = 108
    GROUP BY ub.user_id 
    HAVING COUNT(*) >= 4 
) AND u.active AND u.silenced_till IS NULL AND u.id > 0 AND 
    (:backfill OR u.id IN (:user_ids) )

Я кратко протестировал это на своём тестовом сайте, и всё работает нормально (я запускаю фоновую задачу Sidekiq для выдачи бейджей, чтобы ускорить ожидание). Надеюсь, это хотя бы даст вам отправную точку для дальнейшей разработки. :slightly_smiling_face:

Также здесь есть несколько примеров, которые могут послужить вдохновением, если вы их ещё не нашли: Some common badge queries :+1: