试卷答题列表将倒计时结束且未提交的学生提交答题并算分

schedule_job
cxt 5 years ago
parent 58e183f306
commit f232066bc4

@ -816,7 +816,7 @@ class ExercisesController < ApplicationController
ex_user_ids = exercise_users.pluck(:id)
EndExerciseCalculateJob.perform_later(ex_user_ids, exercise, Time.now.to_s)
EndExerciseCalculateJob.perform_later(ex_user_ids, exercise, Time.now.to_s, true, 4)
# exercise_users.each do |user|
# if user.commit_status == 0 && user.start_at.present?
# objective_score = calculate_student_score(exercise,user.user)[:total_score]
@ -1192,8 +1192,9 @@ class ExercisesController < ApplicationController
if @exercise.time > 0
start_time = Time.current - @exercise.time * 60
if @exercise_users_list.where("start_at <= '#{Time.at(start_time)}' and commit_status = 0").count > 0
ex_user_ids = @exercise_users_list.where("start_at <= '#{Time.at(start_time)}' and commit_status = 0").pluck(:user_id)
if ex_user_ids.size > 0
EndExerciseCalculateJob.perform_later(ex_user_ids, @exercise, Time.now.to_s, false, 2)
end
end

@ -5,10 +5,12 @@ class EndExerciseCalculateJob < ApplicationJob
queue_as :default
def perform(ex_user_ids,exercise,end_time)
def perform(ex_user_ids,exercise,end_time,work_time,commit_method)
exercise_users = ExerciseUser.where(id: ex_user_ids)
exercise_users.each do |user|
if user.commit_status == 0 && user.start_at.present?
end_at = work_time ? end_time : Time.at(user.start_at + exercise.time * 60)
objective_score = calculate_student_score(exercise,user.user,end_time.to_time)[:total_score]
user_sub_score = user.subjective_score
subjective_score = user_sub_score < 0.0 ? 0.0 : user_sub_score
@ -16,11 +18,11 @@ class EndExerciseCalculateJob < ApplicationJob
commit_option = {
:status => 1,
:commit_status => 1,
:end_at => Time.now,
:end_at => end_at,
:objective_score => objective_score,
:score => total_score,
:subjective_score => user_sub_score,
:commit_method => user&.commit_method.to_i > 0 ? user&.commit_method.to_i : 4
:commit_method => user&.commit_method.to_i > 0 ? user&.commit_method.to_i : commit_method
}
user.update_attributes(commit_option)
end

Loading…
Cancel
Save