From 558a7051ab12bfeef33f7ec41e53b780e06302b7 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Sat, 12 Oct 2019 16:51:30 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E5=8D=B7=E8=AF=84=E9=98=85=E9=A1=B5?=
 =?UTF-8?q?=E7=9A=84=E9=A1=B5=E9=9D=A2=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/controllers/exercises_controller.rb          |  6 +++---
 app/helpers/exercises_helper.rb                  | 16 ++++++++--------
 .../exercises/_user_exercise_info.json.jbuilder  |  2 +-
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb
index 74059b314..9979ae48f 100644
--- a/app/controllers/exercises_controller.rb
+++ b/app/controllers/exercises_controller.rb
@@ -1152,7 +1152,7 @@ class ExercisesController < ApplicationController
         # 1 老师权限,0 学生权限
         @is_teacher_or = (@user_course_identity < Course::STUDENT) ? 1 : 0
         @student_status = 2
-        @exercise_questions = @exercise.exercise_questions.includes(:exercise_shixun_challenges,:exercise_standard_answers,:exercise_answers,:exercise_shixun_answers).order("question_number ASC")
+        @exercise_questions = @exercise.exercise_questions.includes(:exercise_shixun_challenges,:exercise_standard_answers,:exercise_answers,:exercise_shixun_answers,:exercise_answer_comments).order("question_number ASC")
         @question_status = []
         get_exercise_status = @exercise.get_exercise_status(current_user)  #当前用户的试卷状态
         @ex_answer_status = @exercise.get_exercise_status(@ex_user&.user)  #当前试卷用户的试卷状态
@@ -1709,9 +1709,9 @@ class ExercisesController < ApplicationController
         ques_number = q.question_number
       end
       if q.question_type != Exercise::PRACTICAL
-        ques_vote = q.exercise_answers.search_exercise_answer("user_id",user_id)
+        ques_vote = q.exercise_answers.select{|answer| answer.user_id == user_id}
       else
-        ques_vote = q.exercise_shixun_answers.search_shixun_answers("user_id",user_id)
+        ques_vote = q.exercise_shixun_answers.select{|answer| answer.user_id == user_id}
       end
       ques_status = 0
       if ques_vote.present?
diff --git a/app/helpers/exercises_helper.rb b/app/helpers/exercises_helper.rb
index ef9261990..e13f754be 100644
--- a/app/helpers/exercises_helper.rb
+++ b/app/helpers/exercises_helper.rb
@@ -10,9 +10,9 @@ module ExercisesHelper
     exercise_obj_status.each do |q|
       q_type = q.question_type
       if q_type == Exercise::PRACTICAL
-        answers_content = q.exercise_shixun_answers.search_shixun_answers("user_id",user_id)
+        answers_content = q.exercise_shixun_answers.select{|answer| answer.user_id == user_id}
       else
-        answers_content = q.exercise_answers.search_answer_users("user_id",user_id)
+        answers_content = q.exercise_answers.select{|answer| answer.user_id == user_id}
       end
 
       if q_type <= Exercise::JUDGMENT
@@ -40,7 +40,7 @@ module ExercisesHelper
           ques_score = 0.0
         end
       else
-        ques_score = answers_content.score_reviewed.select(:score).pluck(:score).sum
+        ques_score = answers_content.select{|answer| answer.score >= 0.0}.pluck(:score).sum
       end
 
       if ques_score >= q.question_score  #满分作答为正确
@@ -64,7 +64,7 @@ module ExercisesHelper
     exercise_sub_status = exercise_questions.find_by_custom("question_type",Exercise::SUBJECTIVE) #主观题
     @ex_sub_array = []   #主观题的已答/未答
     exercise_sub_status.each do |s|
-      sub_answer = s.exercise_answers.search_answer_users("user_id",user_id)  #主观题只有一个回答
+      sub_answer = s.exercise_answers.select{|answer| answer.user_id == user_id}  #主观题只有一个回答
       if sub_answer.present? && sub_answer.first.score >= 0.0
         if s.question_score <= sub_answer.first.score
           stand_status = 1
@@ -772,12 +772,12 @@ module ExercisesHelper
     question_comment = []
     # user_score_pre = nil
     if ques_type == 5
-      exercise_answers = q.exercise_shixun_answers.search_shixun_answers("user_id",ex_answerer_id)
+      exercise_answers = q.exercise_shixun_answers.select{|answer| answer.user_id == ex_answerer_id}
     else
-      exercise_answers = q.exercise_answers.search_exercise_answer("user_id",ex_answerer_id)  #试卷用户的回答
+      exercise_answers = q.exercise_answers.select{|answer| answer.user_id == ex_answerer_id}  #试卷用户的回答
     end
     if student_status == 2   #当前为老师,或为学生且已提交
-      user_score_pre = exercise_answers.score_reviewed
+      user_score_pre = exercise_answers.select{|answer| answer.score >= 0.0}
       if ques_type == 4  #主观题时,且没有大于0的分数时,为空
         user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : nil
       elsif ques_type == 5 || ques_type == 3
@@ -829,7 +829,7 @@ module ExercisesHelper
 
     if ex_type == 4  #填空题/主观题/实训题有评论的
       q_answer_id = exercise_answers.present? ? exercise_answers.first.id : nil
-      question_comment = q.exercise_answer_comments.search_answer_comments("exercise_answer_id",q_answer_id)
+      question_comment = q.exercise_answer_comments.select{|comment| comment.exercise_answer_id == q_answer_id}
     end
     {
         "user_score": (user_score.present? ? user_score.round(1).to_s : nil),
diff --git a/app/views/exercises/_user_exercise_info.json.jbuilder b/app/views/exercises/_user_exercise_info.json.jbuilder
index bdac3a985..c351a9b26 100644
--- a/app/views/exercises/_user_exercise_info.json.jbuilder
+++ b/app/views/exercises/_user_exercise_info.json.jbuilder
@@ -65,7 +65,7 @@ json.exercise_questions do
                   shixun_type: user_ques_answers[:shixun_type],
                   ques_position: nil,
                   edit_type:nil
-    if user_ques_comments.count > 0
+    if user_ques_comments.size > 0
       json.question_comments do
         json.partial! "exercises/exercise_comments", question_comment:user_ques_answers[:question_comment].first
       end