Commit ea2b6e8 1 parent 545d8de commit ea2b6e8 Copy full SHA for ea2b6e8
File tree 2 files changed +26
-14
lines changed
platforms/tppstm/endpoints/main/commands
2 files changed +26
-14
lines changed Original file line number Diff line number Diff line change @@ -224,16 +224,20 @@ namespace database::event_rankings
224
224
last_update = now;
225
225
226
226
db->execute (R"(
227
- with ranked_players as (
228
- select player_id, value,
229
- (select count(distinct value) + 1
230
- from event_rankings pr2
231
- where pr2.value > pr1.value) as new_rank
232
- from event_rankings pr1
233
- )
234
- update event_rankings record
235
- join ranked_players ranked_player on record.player_id = ranked_player.player_id
236
- set record.player_rank = ranked_player.new_rank where record.value > 0;
227
+ update event_rankings event_ranking
228
+ join (
229
+ select
230
+ player_id,
231
+ event_id,
232
+ value,
233
+ case
234
+ when value = 0 then 0
235
+ else rank() over (partition by event_id order by value desc)
236
+ end as new_rank
237
+ from event_rankings
238
+ ) ranked
239
+ on event_ranking.player_id = ranked.player_id AND event_ranking.event_id = ranked.event_id
240
+ set event_ranking.player_rank = ranked.new_rank;
237
241
)" );
238
242
}
239
243
Original file line number Diff line number Diff line change @@ -38,15 +38,23 @@ namespace tpp
38
38
const auto event_id = event_id_opt.value ();
39
39
40
40
const auto lookup_type = lookup_type_opt.value ();
41
- auto offset = index_j. get <std:: uint64_t >() - 1 ;
41
+ auto offset = 0ull ;
42
42
43
43
if (lookup_type == database::event_rankings::lookup_around)
44
44
{
45
45
const auto player_rank = database::event_rankings::get_player_rank (player->get_id (), event_id);
46
46
if (player_rank.has_value ())
47
47
{
48
48
const auto page_start = player_rank.value () - (player_rank.value () % num);
49
- offset += page_start;
49
+ offset = page_start - 1 ;
50
+ }
51
+ }
52
+ else
53
+ {
54
+ offset = index_j.get <std::uint64_t >();
55
+ if (offset > 0 )
56
+ {
57
+ offset--;
50
58
}
51
59
}
52
60
@@ -59,12 +67,12 @@ namespace tpp
59
67
const auto & entry = entries[i];
60
68
auto & json_entry = result[" ranking_list" ][i];
61
69
62
- json_entry[" disp_rank" ] = 1 ;
70
+ json_entry[" disp_rank" ] = 0 ;
63
71
json_entry[" rank" ] = entry.get_rank ();
64
72
json_entry[" fob_grade" ] = entry.get_fob_grade ();
65
73
json_entry[" league_grade" ] = entry.get_league_grade ();
66
74
json_entry[" score" ] = entry.get_value ();
67
- json_entry[" is_grade_top" ] = 0 ;
75
+ json_entry[" is_grade_top" ] = lookup_type == database::event_rankings::lookup_best && offset == 0 && i == 0 ;
68
76
json_entry[" player_info" ] = player_info (entry.get_player_id (), entry.get_account_id ());
69
77
}
70
78
You can’t perform that action at this time.
0 commit comments