カテゴリで新しいトピックに投稿するたびにバッジの質問か?

メンバーが複数回獲得できるバッジがあります。「ブッククラブ」バッジです。その月の本について話し合った際に授与されます。

毎月、次の本に関する新しいトピックが作成され、返信するすべての人にバッジが付与されます。これは現在手動で行われており、非常に手間がかかります。

これを修正するためのバッジSQLを作成するのを手伝ってもらえないでしょうか?

ユーザーは、トピック内で最初に投稿した際に、トピックごとに最大1つのバッジを受け取る必要があります。毎回同じバッジであり、複数回獲得されます。

可能でしょうか?よろしくお願いします!

「いいね!」 2

これを手伝ってくれる人はいますか?それとも、バッジSQLの作成方法に関するガイドはどこかにありますか?

Topics tagged sql-triggered-badge を読みましたか?

はい、すべて読みました。

本番サイトで不適切に作成されたSQLクエリを試すのは少し気が引けます。非常にまずい結果になりかねません。

テストモードのようなものはありますか?

実験にはステージングサーバーを使用しています。

これについて、何か進展はありましたか?

ブッククラブのトピックはどのように定義されていますか?別のカテゴリにありますか、それともタグでグループ化されていますか?

さらに進めません。複数の付与要因に行き詰まっています。

すべてのトピックは同じカテゴリにあります。そのカテゴリはロックダウンされており、スタッフのみが投稿を作成できるため、カテゴリ内のすべての返信に自動付与しても安全です。

しかし、私はそれが次のように機能することを望んでいます。

  • 各ユーザーが各トピックで最初に返信したときにバッジを付与する。ただし、トピックごとに1回のみ。
  • ユーザーは、同じカテゴリの異なるトピックに返信するたびに、同じバッジを複数回取得できます。

これでいけると思います。

WITH book_club_first_posts AS (

SELECT 
    p.topic_id,
    p.user_id,
    MIN(p.id) AS post_id
FROM posts p
  JOIN topics t ON t.id = p.topic_id
WHERE t.category_id = 5  -- replace with the category_id of your book club
    AND p.deleted_at ISNULL
    AND t.deleted_at ISNULL
    AND p.post_type = 1
    AND p.post_number <> 1
    AND p.user_id > 0
GROUP BY p.topic_id, p.user_id

)

SELECT bcfp.user_id, bcfp.post_id, p.created_at granted_at
FROM book_club_first_posts bcfp
  JOIN posts p ON p.id = bcfp.post_id
WHERE (:backfill OR p.id IN (:post_ids))

「いいね!」 1

すぐに試してみます。ありがとうございます。

「いいね!」 1

素晴らしい、ありがとうございます!!

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.