Assegnato un badge in base all'assegnazione di più badge

Per uno personalizzato attivato, penso che dovresti essere in grado di copiare la query Campaigner e modificarla per funzionare per i badge invece che per gli inviti.

Questo è per avere 5 ‘Badge 108’, e verrebbe impostato per aggiornarsi quotidianamente.

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) )

L’ho testato brevemente sul mio sito di prova e sembra funzionare bene (attivo il job Sidekiq di Badge Grant per velocizzare l’attesa). Ma spero che questo ti dia almeno un punto di partenza su cui costruire. :slightly_smiling_face:

Ci sono anche alcuni esempi diversi qui che puoi usare come ispirazione, se non l’hai ancora trovato, Some common badge queries :+1:

3 Mi Piace