用户首次晋升版主时发放徽章?

我刚刚将此标记为 sql-triggered-badge,但我想确认您是在寻找自动徽章还是手动徽章?我假设您可能没有很多版主,并且可以根据数据浏览器查询手动授予此徽章?


我认为上面简化版本可以这样写:

-- [params]
-- int :years

WITH time_in_mod_group AS (

SELECT
    user_id,
    (CURRENT_DATE - created_at::date) AS days_as_mod
FROM group_users
WHERE group_id = 2 -- 'moderator' group 的 group id
  AND user_id > 0 -- 排除系统用户和机器人

)

SELECT
    user_id,
    days_as_mod
FROM time_in_mod_group
WHERE days_as_mod > (365 * :years)

这可以作为一个数据浏览器查询而不是一组 SQL 徽章来使用,并且可以选出符合条件的用户名列表,以便您手动授予他们徽章。

有一个注意事项是,如果他们中途离开版主组然后重新加入,它将只计算最新的加入时间。我认为可以使用 user_histories 表来解决这个问题,但如果这是一个例外情况,那么手动处理可能更容易。