🐞 fix(排行榜): 名将擂台的排行榜

This commit is contained in:
luying
2023-05-06 20:24:25 +08:00
parent 8e7337eabd
commit 95b3c0a880
2 changed files with 6 additions and 6 deletions
+1 -1
View File
@@ -126,7 +126,7 @@ async function generateOppPlayer(serverId: number, rank: number) {
let r = new Rank(REDIS_KEY.LADDER, { serverId }, false); let r = new Rank(REDIS_KEY.LADDER, { serverId }, false);
let result = new LadderOppPlayerReturn(rank); let result = new LadderOppPlayerReturn(rank);
if(rank < 3001) { if(rank < 3001) {
let players = <RoleRankInfo[]>await r.getRankByRange(rank, rank); let players = <RoleRankInfo[]>await r.getRankByRange(rank, rank, false, true);
if(players.length > 0) { if(players.length > 0) {
let player = players[0]; let player = players[0];
let defCe = await getLadderDefCe(player.roleId); let defCe = await getLadderDefCe(player.roleId);
+5 -5
View File
@@ -772,7 +772,7 @@ export class Rank {
} }
// 获取区间里的排行榜,格式 {rank, field, score}[] // 获取区间里的排行榜,格式 {rank, field, score}[]
public async getRankByRangeRaw(max: number | string = '+inf', min: number | string = '-inf', isReverse = true) { public async getRankByRangeRaw(max: number | string = '+inf', min: number | string = '-inf', isReverse = true, byScore = false) {
let ranks: { rank: number, field: string, scores: number[] }[] = []; let ranks: { rank: number, field: string, scores: number[] }[] = [];
let key = this.keyName.getName(); let key = this.keyName.getName();
if (this.isUnion) { if (this.isUnion) {
@@ -780,11 +780,11 @@ export class Rank {
} }
const rankFromDb = isReverse? const rankFromDb = isReverse?
((max == '+inf' && min == '-inf')? (((max == '+inf' && min == '-inf') || byScore)?
(await redisClient().zrevrangebyscoreAsync(key, max, min, "WITHSCORES")): (await redisClient().zrevrangebyscoreAsync(key, max, min, "WITHSCORES")):
(await redisClient().zrevrangeAsync(key, <number>min, <number>max, "WITHSCORES")) (await redisClient().zrevrangeAsync(key, <number>min, <number>max, "WITHSCORES"))
): ):
((max == '+inf' && min == '-inf')? (((max == '+inf' && min == '-inf') || byScore)?
(await redisClient().zrangebyscoreAsync(key, min, max, "WITHSCORES")): (await redisClient().zrangebyscoreAsync(key, min, max, "WITHSCORES")):
(await redisClient().zrangeAsync(key, <number>min, <number>max, "WITHSCORES")) (await redisClient().zrangeAsync(key, <number>min, <number>max, "WITHSCORES"))
) )
@@ -798,8 +798,8 @@ export class Rank {
return ranks return ranks
} }
public async getRankByRange(max: number | string = '+inf', min: number | string = '-inf', isReverse = true) { public async getRankByRange(max: number | string = '+inf', min: number | string = '-inf', isReverse = true, byScore = false) {
let raws = await this.getRankByRangeRaw(max, min, isReverse); let raws = await this.getRankByRangeRaw(max, min, isReverse, byScore);
let ranks = new Array<RoleRankInfo | GuildRankInfo | LeagueRankInfo>(); let ranks = new Array<RoleRankInfo | GuildRankInfo | LeagueRankInfo>();
let l = 1; let l = 1;