From ad8bbb40e2531fc2a99ef5b57089cc323375db0b Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Wed, 13 Nov 2019 20:29:15 +0800 Subject: [PATCH] xxx --- app/helpers/exercises_helper.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/helpers/exercises_helper.rb b/app/helpers/exercises_helper.rb index 7df2f3e10..0c52fbfe9 100644 --- a/app/helpers/exercises_helper.rb +++ b/app/helpers/exercises_helper.rb @@ -166,6 +166,15 @@ module ExercisesHelper elsif ex.question_type == Exercise::COMPLETION #填空题 effictive_users_ids = effictive_users.where("answer_text is not null and answer_text !=''").pluck(:user_id).uniq effictive_users_count = effictive_users_ids.size + user_wrong_count = 0 + user_ids.each do |s| + user_score = effictive_users.where(user_id: s).pluck(:score).sum + unless user_score.to_s >= ex&.question_score.to_f + user_wrong_count + 1 + end + end + # user_wrong_ids = effictive_users.where() + # user_wrong_count = (user_wrong_ids & effictive_users_ids).uniq.size ex_ordered = ex.is_ordered null_standard_answer = ex.exercise_standard_answers null_stand_choice = null_standard_answer.pluck(:exercise_choice_id) #一个exercise_choice_id可能对应多个answer_text @@ -215,13 +224,6 @@ module ExercisesHelper answer_user_score = all_user_count * each_null_score percent = (ex_total_score == 0.0 ? 0.0 : (answer_user_score / ex_total_score.to_f).round(3) * 100) #正确率 - # percent = commit_user_ids > 0 ? (all_user_count / commit_user_ids.to_f).round(3)*100 : 0.0 - # user_right_count = effictive_users.where("score > 0.0").pluck(:user_id).uniq - # unanswer_user_count = effictive_users.where("score < 0.0 and answer_text is null or answer_text = ''").pluck(:user_id).uniq - user_wrong_ids = effictive_users.where("score < 0.0").pluck(:user_id) - user_wrong_count = (user_wrong_ids & effictive_users_ids).uniq.size - # user_wrong_count = (user_wrong_counts - user_right_count - unanswer_user_count).size - if effictive_users_count > 0 && user_wrong_count >= 0 wrong_percent = (user_wrong_count / effictive_users_count.to_f ).round(3) else