@@ -27,6 +27,7 @@ defmodule Codebattle.Workers.SaveGroupTournamentResultsWorker do
2727 defp save_results ( % GroupTournament { id: group_tournament_id } = group_tournament ) do
2828 now = DateTime . truncate ( DateTime . utc_now ( ) , :second )
2929 duration = duration_seconds ( group_tournament )
30+ total_score = group_tournament . max_score
3031
3132 stages =
3233 UserEventStage
@@ -36,29 +37,30 @@ defmodule Codebattle.Workers.SaveGroupTournamentResultsWorker do
3637
3738 case stages do
3839 [ ] -> :ok
39- _ -> update_stages ( stages , group_tournament_id , now , duration )
40+ _ -> update_stages ( stages , group_tournament_id , now , duration , total_score )
4041 end
4142 end
4243
43- defp update_stages ( stages , group_tournament_id , now , duration ) do
44+ defp update_stages ( stages , group_tournament_id , now , duration , total_score ) do
4445 scores_by_user_id = best_scores_for ( group_tournament_id )
4546
4647 Enum . each ( stages , fn stage ->
4748 score = Map . get ( scores_by_user_id , stage . user_event . user_id , 0 )
48- update_stage ( stage , group_tournament_id , now , duration , score )
49+ update_stage ( stage , group_tournament_id , now , duration , score , total_score )
4950 end )
5051
5152 :ok
5253 end
5354
54- defp update_stage ( stage , group_tournament_id , now , duration , score ) do
55+ defp update_stage ( stage , group_tournament_id , now , duration , score , total_score ) do
5556 result =
5657 stage
5758 |> UserEventStage . changeset ( % {
5859 status: :completed ,
5960 finished_at: now ,
6061 group_tournament_finished: true ,
6162 group_tournament_score: score ,
63+ group_tournament_total_score: total_score ,
6264 group_tournament_time_spent_in_seconds: duration
6365 } )
6466 |> Repo . update ( )
0 commit comments