You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
educoder/db/migrate/20190822022306_add_exercise...

40 lines
2.0 KiB

class AddExerciseUserUpdate < ActiveRecord::Migration[5.2]
5 years ago
5 years ago
# include ExercisesHelper
# def change
# #2019,8,22添加
# two_months = Time.now - 2.months
# exs = Exercise.all.is_exercise_published.where("publish_time > ?",two_months).includes(:exercise_questions,:exercise_users)
# exs.each do |ex|
# if ex.exercise_questions.where("created_at < ?",Time.now - 1.month).pluck(:question_type).include?(1) #含有多选题,且是1个月前创建的才更新
# ex_users = ex.exercise_users.exercise_user_committed.where("end_at is not null and end_at > ?",two_months)
# if ex_users.exists?
# ex_users.each do |ex_user|
# calculate_score = calculate_student_score(ex,ex_user.user)[:total_score]
# subjective_score = ex_user.subjective_score
# total_score_subjective_score = subjective_score < 0.0 ? 0.0 : subjective_score
# total_score = calculate_score + total_score_subjective_score
# ex_user.update_attributes(score:total_score,objective_score:calculate_score)
# puts ex_user.id
# end
# end
# end
# end
#
# #1936的试卷成绩有问题。
# # #https://www.educoder.net/courses/2935/exercises/1936/users/pizfnr5ts
# ex_special = Exercise.find_by_id(1936)
# ex_special_users = ex_special.exercise_users.exercise_user_committed.where("end_at is not null and end_at > ?",two_months)
# if ex_special.present? && ex_special_users.exists?
# ex_special_users.each do |ex_user|
# calculate_score = calculate_student_score(ex_special,ex_user.user)[:total_score]
# subjective_score = ex_user.subjective_score
# total_score_subjective_score = subjective_score < 0.0 ? 0.0 : subjective_score
# total_score = calculate_score + total_score_subjective_score
# ex_user.update_attributes(score:total_score,objective_score:calculate_score)
# puts ex_user.id
# end
# end
# end
end