admins: fix user statistic

problem_set
p31729568 5 years ago
parent 3c512142d3
commit 82ac7e2fc2

@ -83,7 +83,7 @@ class Admins::UserStatisticQuery < ApplicationQuery
users.joins("LEFT JOIN myshixuns ON myshixuns.user_id = users.id AND myshixuns.status = 1 AND "\
"myshixuns.updated_at BETWEEN '#{time_range.min}' AND '#{time_range.max}'")
else
users.left_joins(:myshixuns).where(myshixuns: { status: 1 })
users.joins('LEFT JOIN myshixuns ON myshixuns.user_id = users.id AND myshixuns.status = 1')
end
users.select("#{base_query_column}, COUNT(*) finish_shixun_count")
@ -94,7 +94,8 @@ class Admins::UserStatisticQuery < ApplicationQuery
.joins("LEFT JOIN games ON games.myshixun_id = myshixuns.id "\
"AND games.status IN (0,1,2) AND games.updated_at BETWEEN '#{time_range.min}' AND '#{time_range.max}'")
else
users.left_joins(myshixuns: :games).where(games: { status: [0, 1, 2] })
users.joins('LEFT JOIN myshixuns ON myshixuns.user_id = users.id')
.joins("LEFT JOIN games ON games.myshixun_id = myshixuns.id AND games.status IN (0,1,2)")
end
users.select("#{base_query_column}, COUNT(*) study_challenge_count")
@ -105,7 +106,8 @@ class Admins::UserStatisticQuery < ApplicationQuery
.joins("LEFT JOIN games ON games.myshixun_id = myshixuns.id "\
"AND games.status = 2 AND games.updated_at BETWEEN '#{time_range.min}' AND '#{time_range.max}'")
else
users.left_joins(myshixuns: :games).where(games: { status: 2 })
users.joins('LEFT JOIN myshixuns ON myshixuns.user_id = users.id')
.joins("LEFT JOIN games ON games.myshixun_id = myshixuns.id AND games.status = 2")
end
users.select("#{base_query_column}, COUNT(*) finish_challenge_count")

Loading…
Cancel
Save