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.
		
		
		
		
		
			
		
			
				
					
					
						
							40 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							40 lines
						
					
					
						
							2.0 KiB
						
					
					
				| class AddExerciseUserUpdate < ActiveRecord::Migration[5.2]
 | |
| 
 | |
|   # 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
 |