dev_trainings
			
			
		
		
						commit
						09eed36ec6
					
				| @ -0,0 +1,41 @@ | ||||
| class MigrateHomeworkEffScore < ActiveRecord::Migration | ||||
|   def up | ||||
|     homework = HomeworkCommon.where(id: 27641).first | ||||
|     if homework.present? | ||||
|       max_efficiency = homework.max_efficiency | ||||
|       homework.student_works.where(compelete_status: 1).each do |work| | ||||
|         user_total_score = 0 | ||||
|         pass_consume_time = 0 | ||||
|         myshixun = work.myshixun | ||||
|         homework.homework_challenge_settings.each do |setting| | ||||
|           game = myshixun.games.where(:challenge_id => setting.challenge_id, :status => 2).first | ||||
|           unless game.nil? | ||||
|             pass_consume_time += (game.cost_time / 60.0).to_f | ||||
|             user_total_score += game.final_score.to_i < 0 ? 0 : game.challenge.score.to_i | ||||
|           end | ||||
|         end | ||||
| 
 | ||||
|         efficiency = (pass_consume_time == 0 ? 0 : Math.log((user_total_score / pass_consume_time.to_f) + 1.0)) | ||||
|         work.update_column("efficiency", format("%.2f", efficiency)) | ||||
| 
 | ||||
|         if max_efficiency < work.efficiency | ||||
|           max_efficiency = work.efficiency | ||||
|         end | ||||
|       end | ||||
|       homework.update_column("max_efficiency", max_efficiency) | ||||
| 
 | ||||
|       homework.student_works.where("compelete_status != 0").each do |student_work| | ||||
|         eff_score = student_work.efficiency / homework.max_efficiency * homework.eff_score | ||||
|         student_work.eff_score = format("%.2f", eff_score) | ||||
|         unless student_work.ultimate_score | ||||
|           work_score = student_work.final_score.to_f + student_work.eff_score - student_work.late_penalty | ||||
|           student_work.work_score = format("%.2f", work_score < 0 ? 0 : work_score) | ||||
|         end | ||||
|         student_work.save | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def down | ||||
|   end | ||||
| end | ||||
					Loading…
					
					
				
		Reference in new issue