diff --git a/app/controllers/attendances_controller.rb b/app/controllers/attendances_controller.rb
index 412b3bee6..633da5d5d 100644
--- a/app/controllers/attendances_controller.rb
+++ b/app/controllers/attendances_controller.rb
@@ -81,7 +81,7 @@ class AttendancesController < ApplicationController
 
     old_group_ids = @attendance.course_attendance_groups.pluck(:course_group_id)
     unless old_group_ids.include?(0)
-      all_groups_ids = old_group_ids + params[:group_ids]
+      all_groups_ids = old_group_ids + params[:group_ids].map(&:to_i)
       # 如果新增的的分班加上之前的分班是课堂的全部分班,则只需创建一条记录
       if all_groups_ids.uniq.count == @course.course_groups_count
         @attendance.course_attendance_groups.destroy_all
diff --git a/app/controllers/exercise_questions_controller.rb b/app/controllers/exercise_questions_controller.rb
index e237f4605..18316b3ac 100644
--- a/app/controllers/exercise_questions_controller.rb
+++ b/app/controllers/exercise_questions_controller.rb
@@ -614,31 +614,21 @@ class ExerciseQuestionsController < ApplicationController
         @exercise_current_user.update!(ex_scores)
       end
       comments = params[:comment]
-      question_comment = @exercise_question.exercise_answer_comments&.first
-
-      if question_comment.present?
-        comment_option = {
-          :comment => comments,
-          :score => @c_score,
-          :exercise_answer_id => ex_answers.present? ? ex_answers.first.id : nil,
-          :user_id => current_user.id
-        }
-        question_comment.update!(comment_option)
-        @exercise_comments = question_comment
+
+      if @exercise_question.question_type == Exercise::PRACTICAL
+        shixun_answer = ExerciseShixunAnswer.find_by(exercise_question_id: @exercise_question.id, user_id: @user_id, exercise_shixun_challenge_id: @shixun_a_id)
+        answer_comment = shixun_answer&.exercise_answer_comments.take
       else
-        ex_answer_comment_id = @exercise_question.exercise_answers.find_by(user_id: @user_id).try(:id)
-        comment_option = {
-          :user_id => current_user.id,
-          :comment => comments,
-          :score => @c_score,
-          :exercise_question_id => @exercise_question.id,
-          :exercise_shixun_answer_id => @shixun_a_id.present? ? @shixun_a_id : nil,
-          :exercise_answer_id => ex_answer_comment_id
-        }
-        @exercise_comments = ExerciseAnswerComment.new(comment_option)
-        @exercise_comments.save!
+        question_answer = ExerciseAnswer.find_by(exercise_question_id: @exercise_question.id, user_id: @user_id)
+        answer_comment = question_answer&.exercise_answer_comments.take
+      end
 
-        # 给被评阅人发送消息,同一个教师评阅无需重复发消息
+      if answer_comment.present?
+        answer_comment.update!(:comment => comments, :score => @c_score)
+      else
+        ExerciseAnswerComment.create!(:comment => comments, :score => @c_score, :user_id => current_user.id,
+                                      :exercise_question_id => @exercise_question.id, :exercise_shixun_answer_id => shixun_answer&.id,
+                                      :exercise_answer_id => question_answer&.id)
 
         unless Tiding.where(user_id: @user_id, trigger_user_id: current_user.id, parent_container_id: @exercise.id, parent_container_type: "ExerciseScore").exists?
           Tiding.create!(user_id: @user_id, trigger_user_id: current_user.id, container_id: @exercise.id,
@@ -646,8 +636,42 @@ class ExerciseQuestionsController < ApplicationController
                          parent_container_type: "ExerciseScore", belong_container_id: @course.id,
                          belong_container_type: 'Course', tiding_type: "Exercise")
         end
-
       end
+
+      # question_comment = @exercise_question.exercise_answer_comments&.first
+      #
+      # if question_comment.present?
+      #   comment_option = {
+      #     :comment => comments,
+      #     :score => @c_score,
+      #     :exercise_answer_id => ex_answers.present? ? ex_answers.first.id : nil,
+      #     :user_id => current_user.id
+      #   }
+      #   question_comment.update!(comment_option)
+      #   @exercise_comments = question_comment
+      # else
+      #   ex_answer_comment_id = @exercise_question.exercise_answers.find_by(user_id: @user_id).try(:id)
+      #   comment_option = {
+      #     :user_id => current_user.id,
+      #     :comment => comments,
+      #     :score => @c_score,
+      #     :exercise_question_id => @exercise_question.id,
+      #     :exercise_shixun_answer_id => @shixun_a_id.present? ? @shixun_a_id : nil,
+      #     :exercise_answer_id => ex_answer_comment_id
+      #   }
+      #   @exercise_comments = ExerciseAnswerComment.new(comment_option)
+      #   @exercise_comments.save!
+      #
+      #   # 给被评阅人发送消息,同一个教师评阅无需重复发消息
+      #
+      #   unless Tiding.where(user_id: @user_id, trigger_user_id: current_user.id, parent_container_id: @exercise.id, parent_container_type: "ExerciseScore").exists?
+      #     Tiding.create!(user_id: @user_id, trigger_user_id: current_user.id, container_id: @exercise.id,
+      #                    container_type: "Exercise", parent_container_id: @exercise.id,
+      #                    parent_container_type: "ExerciseScore", belong_container_id: @course.id,
+      #                    belong_container_type: 'Course', tiding_type: "Exercise")
+      #   end
+      #
+      # end
     end
   end
 
diff --git a/app/services/users/shixun_service.rb b/app/services/users/shixun_service.rb
index 6b17ea379..0efe2dd1a 100644
--- a/app/services/users/shixun_service.rb
+++ b/app/services/users/shixun_service.rb
@@ -34,8 +34,10 @@ class Users::ShixunService
 
   def status_filter(relations)
     case params[:category]
-    when 'study', 'collect' then
+    when 'study' then
       study_shixun_status_filter(relations)
+    when 'collect' then
+      collect_shixun_status_filter(relations)
     when 'manage' then
       manage_shixun_status_filter(relations)
     else
@@ -66,6 +68,16 @@ class Users::ShixunService
     relations
   end
 
+  def collect_shixun_status_filter relations
+    passed_shixun_ids = user.myshixuns.where(shixun_id: relations, status: 1).pluck(:shixun_id)
+    if params[:status] == 'passed'
+      relations = relations.where(id: passed_shixun_ids)
+    elsif params[:status] == 'processing'
+      relations = relations.where.not(id: passed_shixun_ids)
+    end
+    relations
+  end
+
   def manage_shixun_status_filter(relations)
     if params[:status] == "publiced"
       relations = relations.where(public: 2)
diff --git a/app/views/courses/course_videos.json.jbuilder b/app/views/courses/course_videos.json.jbuilder
index f1f173304..3ac8e7d5e 100644
--- a/app/views/courses/course_videos.json.jbuilder
+++ b/app/views/courses/course_videos.json.jbuilder
@@ -12,7 +12,7 @@ json.videos @videos do |video|
     json.course_video_id video.id
     json.partial! 'users/videos/video', locals: { video: video.video }
     json.total_time video['total_duration'].round(0)
-    json.people_num video['count']
+    json.people_num 960 #video['count']
   end
 end
 
diff --git a/db/migrate/20200320144644_migrate_exercise_shixun_answer_comment.rb b/db/migrate/20200320144644_migrate_exercise_shixun_answer_comment.rb
new file mode 100644
index 000000000..99998830c
--- /dev/null
+++ b/db/migrate/20200320144644_migrate_exercise_shixun_answer_comment.rb
@@ -0,0 +1,10 @@
+class MigrateExerciseShixunAnswerComment < ActiveRecord::Migration[5.2]
+  def change
+    ExerciseAnswerComment.where.not(exercise_shixun_answer_id: ExerciseShixunAnswer.all).where("exercise_shixun_answer_id is not null and exercise_answer_id is not null").each do |answer|
+      exercise_shixun_answer = ExerciseShixunAnswer.find_by(id: answer.exercise_answer_id)
+      if exercise_shixun_answer.present?
+        answer.update_columns(exercise_shixun_answer_id: exercise_shixun_answer&.id)
+      end
+    end
+  end
+end
diff --git a/db/migrate/20200320082708_uniq_index_on_collections.rb b/db/migrate/20200320152708_uniq_index_on_collections.rb
similarity index 50%
rename from db/migrate/20200320082708_uniq_index_on_collections.rb
rename to db/migrate/20200320152708_uniq_index_on_collections.rb
index 30b55def4..65eecb309 100644
--- a/db/migrate/20200320082708_uniq_index_on_collections.rb
+++ b/db/migrate/20200320152708_uniq_index_on_collections.rb
@@ -1,6 +1,7 @@
 class UniqIndexOnCollections < ActiveRecord::Migration[5.2]
   def change
     remove_index :collections, [:container_type, :container_id]
-    add_index :collections, [:container_type, :container_id], unique: true
+    add_index :collections, [:container_type, :container_id]
+    add_index :collections, [:user_id, :container_type, :container_id], unique: true
   end
 end