diff --git a/app/controllers/zips_controller.rb b/app/controllers/zips_controller.rb index e88f4d552..984bef6d2 100644 --- a/app/controllers/zips_controller.rb +++ b/app/controllers/zips_controller.rb @@ -49,9 +49,26 @@ class ZipsController < ApplicationController normal_status(-1,"试卷不存在") else @course = @exercise.course - default_ex_users = @exercise.all_exercise_users(current_user.id).exercise_user_committed @ex_users = default_ex_users #仅导出已提交的,截止后则是全部为提交的。 + + #是否评阅 + if params[:review].present? + review_type = params[:review].first.to_i #已评,则数据为1,未评,则数据为0,前端传过来的为数组 + if review_type == 1 + @ex_users = @ex_users.where("subjective_score >= ?",0.0) + else + @ex_users = @ex_users.where("subjective_score < ?",0.0) + end + end + + #答题状态的选择 + if params[:commit_status].present? && (params[:commit_status].to_i == 1) + @exercise_users_list = @exercise_users_list.where(commit_status:params[:commit_status]) + elsif params[:commit_status].present? && (params[:commit_status].to_i == 0) + normal_status(-1,"仅支持导出已提交的学生!") + end + #可以分班选择 if group_id.present? exercise_students = @course.students.where(course_group_id: group_id) # 试卷所分班的全部人数 @@ -59,6 +76,11 @@ class ZipsController < ApplicationController @ex_users = @ex_users.where(user_id: user_ids) end + #搜索 + if params[:search].present? + @ex_users = @ex_users.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{params[:search]}%", "%#{params[:search]}%") + end + default_ex_users_size = @ex_users&.size if default_ex_users_size.blank? || default_ex_users_size == 0 @@ -80,6 +102,25 @@ class ZipsController < ApplicationController ##7。2 -hs新增 @member = @course.course_member(current_user.id) @all_student_works = @homework.teacher_works(@member) + work_status = params[:work_status] + group_id = params[:course_group] + + if work_status.present? && !work_status.include?(0) + @all_student_works = @all_student_works.where(work_status:work_status) + elsif work_status.present? && work_status.include?(0) + normal_status(-1,"仅支持导出已提交的学生!") + end + + if group_id.present? + group_user_ids = @course.students.where(course_group_id: params[:course_group]).pluck(:user_id) + @all_student_works = @all_student_works.where(user_id: group_user_ids) + end + + unless params[:search].blank? + @all_student_works = @all_student_works.joins(user: :user_extension).where("concat(lastname, firstname) like ? + or student_id like ?", "%#{params[:search]}%", "%#{params[:search]}%") + end + student_work_sizes = @all_student_works&.size if student_work_sizes.blank? || student_work_sizes == 0 normal_status(-1,"导出失败,暂时没有已提交的学生")