作成したソリューションX個に対するバッジ?

解決策の一定数に対してバッジを付与するためのテンプレートや標準クエリはありますか? 例えば、10件の投稿/質問に回答し、それらすべてが解決策としてマークされたとします。このバッジと、それぞれ対応する20、30、40件の解決策マークなどのバッジを取得します。

標準クエリを探してみましたが、見つかりませんでした。ここにカスタムクエリがいくつかあることはわかります。

よろしくお願いいたします。

プラグインには、/admin/badges ページから有効にできるものがいくつかあります(HelpDesk と TechSupport)。ただし、適応したい場合は、クエリは次のとおりです。

SELECT p.user_id, p.id post_id, p.updated_at granted_at
FROM badge_posts p
WHERE p.post_number > 1 AND
    p.id IN (
      SELECT post_id FROM (
       SELECT pc.post_id, row_number()
       OVER (PARTITION BY p1.user_id ORDER BY pc.created_at) as rnum
       FROM post_custom_fields pc
       JOIN badge_posts p1 ON p1.id = pc.post_id
       JOIN topics t1 ON p1.topic_id = t1.id
       WHERE name = 'is_accepted_answer' AND
                    p1.user_id <> t1.user_id AND
        (
          :backfill OR
           p1.user_id IN (
                   select user_id from posts where p1.id IN (:post_ids)
           )
       )
) X  WHERE rnum = 1)

SELECT id user_id, current_timestamp granted_at
FROM users
WHERE id  IN (
       SELECT p1.user_id
       FROM post_custom_fields pc
       JOIN badge_posts p1 ON p1.id = pc.post_id
       JOIN topics t1 ON p1.topic_id = t1.id
       WHERE p1.user_id <> t1.user_id AND
                    name = 'is_accepted_answer' AND
            p1.user_id IN (
                   SELECT user_id
                   FROM posts
                   WHERE :backfill OR  p1.id IN (:post_ids)
            )
        GROUP BY p1.user_id
        HAVING COUNT(*) > 9
)
「いいね!」 2

@JammyDodgerさん、ありがとうございます。

もう少しお手伝いが必要かもしれません。ソリューションのセレクター/フィールドを特定するドキュメントはありますか?

Screen Shot 2022-06-06 at 11.05.29 AM

問題ありません。 :slightly_smiling_face: データエクスプローラーは、カスタムSQLバッジに追加する前にクエリを試すのに非常に役立ちます(ただし、データエクスプローラーのものはbackfill部分は不要です)。

ただし、上記の2番目のクエリには必要な情報がすべて含まれていると思います。ソリューションはpost_cutom_fieldテーブルにname列のis_accepted_answerとして保存されています。そして、その2番目のクエリは10個のソリューション(HAVING COUNT(*) > 9)に対してTechSupportバッジを付与するため、OPから必要なものについては、そのクエリをコピーして、下の数値を19、29、39などに変更するだけで済みます。

「いいね!」 1