사용자가 직접 트리거하는 배지의 경우, 캠페이너(Campaigner) 쿼리를 가져와서 초대장이 아닌 배지에 맞게 수정할 수 있을 것 같습니다.
아래 쿼리는 'Badge 108’을 5개 보유한 사용자를 대상으로 하며, 매일 업데이트되도록 설정됩니다.
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 작업을 트리거했습니다). 하지만 적어도 이것을 바탕으로 개발을 시작할 수 있는 출발점이 되길 바랍니다. ![]()
아직 찾지 못하셨다면 영감을 얻을 수 있는 몇 가지 다른 예제도 여기에 있으니 참고해 주세요. Some common badge queries ![]()