From dcd60dcc8fa68c82b1ec49865df8532dfd69fc72 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Mon, 20 Nov 2017 17:14:52 -0500 Subject: [PATCH] FIX: cap posts_read_count in user_stats to 50 posts per topic_entered --- app/jobs/onceoff/fix_posts_read.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 app/jobs/onceoff/fix_posts_read.rb diff --git a/app/jobs/onceoff/fix_posts_read.rb b/app/jobs/onceoff/fix_posts_read.rb new file mode 100644 index 00000000000..2505038723b --- /dev/null +++ b/app/jobs/onceoff/fix_posts_read.rb @@ -0,0 +1,21 @@ +module Jobs + class FixPostsRead < Jobs::Onceoff + def execute_onceoff(args) + # Skipping to the last post in a topic used to count all posts in the topic + # as read in user stats. Cap the posts read count to 50 * topics_entered. + + sql = <<~SQL +UPDATE user_stats + SET posts_read_count = topics_entered * 50 + WHERE user_id IN ( + SELECT us2.user_id + FROM user_stats us2 + WHERE us2.topics_entered > 0 + AND us2.posts_read_count / us2.topics_entered > 50 + ) + SQL + + UserStat.exec_sql(sql) + end + end +end