|
|
|
@ -442,7 +442,6 @@ class SubjectsController < ApplicationController
|
|
|
|
|
# 用户进展和获取的标签
|
|
|
|
|
def user_subject_progress challenge_ids
|
|
|
|
|
pass_games = Game.select(:id, :cost_time, :challenge_id).where(status: 2, user_id: current_user.id, challenge_id: challenge_ids) if current_user.logged?
|
|
|
|
|
@all_score = Challenge.where(id: challenge_ids).sum(:score)
|
|
|
|
|
|
|
|
|
|
# 如果没有通关的,没必要再继续统计了
|
|
|
|
|
if pass_games.blank?
|
|
|
|
@ -451,6 +450,7 @@ class SubjectsController < ApplicationController
|
|
|
|
|
@time = 0
|
|
|
|
|
@user_tags = []
|
|
|
|
|
else
|
|
|
|
|
@all_score = Challenge.where(id: challenge_ids).size
|
|
|
|
|
pass_challenge_ids = pass_games.map(&:challenge_id).uniq # 按道理是不用去重的,但是历史数据与重复
|
|
|
|
|
subject_challenge_count = @subject.shixuns.sum(:challenges_count)
|
|
|
|
|
# 用户通关获得的标签
|
|
|
|
@ -460,7 +460,7 @@ class SubjectsController < ApplicationController
|
|
|
|
|
subject_challenge_count == 0 ? 0 :
|
|
|
|
|
((pass_challenge_ids.size.to_f / subject_challenge_count).round(2) * 100).to_i
|
|
|
|
|
# 用户通关分数
|
|
|
|
|
@my_score = Challenge.where(id: pass_challenge_ids).pluck(:score).sum
|
|
|
|
|
@my_score = Challenge.where(id: pass_challenge_ids).size
|
|
|
|
|
@time = pass_games.map(&:cost_time).sum
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|