parent
a44ad345d2
commit
bd28c8b1a0
@ -0,0 +1,78 @@
|
||||
class MigrateExerciseShixunAnswerScore < ActiveRecord::Migration
|
||||
def up
|
||||
# exercises = Exercise.where(id: [1057, 1058])
|
||||
# exercises.each do |exercise|
|
||||
# exercise.exercise_users.where(commit_status: 1).each do |ex_user|
|
||||
# ex_user.exercise_user_questions.each do |ex_user_question|
|
||||
# score_change = false
|
||||
# answer_count = ex_user.user.exercise_shixun_answers.where(exercise_question_id: ex_user_question.exercise_question_id).count
|
||||
# if answer_count > 1
|
||||
# score_change = true
|
||||
# first_answer = ex_user.user.exercise_shixun_answers.where(exercise_question_id: ex_user_question.exercise_question_id).reorder("score desc").first
|
||||
# ex_user.user.exercise_shixun_answers.where(exercise_question_id: ex_user_question.exercise_question_id).where("id != #{first_answer.id}").delete_all
|
||||
# end
|
||||
#
|
||||
# if score_change
|
||||
# score = ExerciseShixunAnswer.where(user_id: ex_user.user_id, exercise_question_id: ex_user.exercise_user_questions.pluck(:exercise_question_id)).pluck(:score).sum
|
||||
# ex_user.update_attributes(score: score, objective_score: score)
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
# exercise_users = ExerciseUser.where(exercise_id: 1057, user_id: [54486, 54563, 54517, 54609, 54785])
|
||||
# exercise_users.each do |ex_user|
|
||||
# score = ExerciseShixunAnswer.where(user_id: ex_user.user_id, exercise_question_id: ex_user.exercise_user_questions.pluck(:exercise_question_id)).pluck(:score).sum
|
||||
# ex_user.update_attributes(score: score, objective_score: score)
|
||||
# end
|
||||
#
|
||||
# exercise_users = ExerciseUser.where(exercise_id: 1058, user_id: 54957)
|
||||
# exercise_users.each do |ex_user|
|
||||
# score = ExerciseShixunAnswer.where(user_id: ex_user.user_id, exercise_question_id: ex_user.exercise_user_questions.pluck(:exercise_question_id)).pluck(:score).sum
|
||||
# ex_user.update_attributes(score: score, objective_score: score)
|
||||
# end
|
||||
|
||||
|
||||
exercises = Exercise.where(id: [1057, 1058])
|
||||
exercises.each do |exercise|
|
||||
exercise.exercise_users.where(commit_status: 1).each do |ex_user|
|
||||
ex_user.exercise_user_questions.each do |ex_user_question|
|
||||
question = ex_user_question.exercise_question
|
||||
question.exercise_shixun_challenges.each do |exercise_cha|
|
||||
game = Game.where(:user_id => ex_user.user_id, :challenge_id => exercise_cha.challenge_id).first
|
||||
if game.present?
|
||||
exercise_cha_score = 0
|
||||
if game.final_score >= 0
|
||||
exercise_cha_score = game.real_score exercise_cha.question_score
|
||||
end
|
||||
|
||||
answer = exercise_cha.exercise_shixun_answers.where(:user_id => ex_user.user_id).first
|
||||
|
||||
if exercise_cha_score.to_i != answer.try(:score).to_i
|
||||
puts("###########{exercise_cha_score}--#{answer.try(:score).to_f}--#{ex_user.id}--#{ex_user.user_id}--#{game.id}")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Exercise.where("id not in (1057, 1058)").each do |exercise|
|
||||
ExerciseShixunChallenge.joins(:exercise_question).where("exercise_id = #{exercise.id}").each do |ex_challenge|
|
||||
exercise.exercise_users.where(commit_status: 1).find_each do |ex_user|
|
||||
first = ex_challenge.exercise_shixun_answers.where(user_id: ex_user.user_id).first
|
||||
if first.present?
|
||||
puts("#######{ex_challenge.exercise_shixun_answers.where(user_id: ex_user.user_id).where("id != #{first.id}").pluck(:id)}")
|
||||
ex_challenge.exercise_shixun_answers.where(user_id: ex_user.user_id).where("id != #{first.id}").delete_all
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
add_index :exercise_shixun_answers, [:user_id, :exercise_shixun_challenge_id], unique: true,
|
||||
name: "index_user_id_and_exercise_shixun_challenge_id"
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
Loading…
Reference in new issue