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

This commit is contained in:
luying
2023-05-06 20:23:24 +08:00
parent 8e7337eabd
commit 95b3c0a880
2 changed files with 6 additions and 6 deletions

View File

@@ -126,7 +126,7 @@ async function generateOppPlayer(serverId: number, rank: number) {
let r = new Rank(REDIS_KEY.LADDER, { serverId }, false);
let result = new LadderOppPlayerReturn(rank);
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) {
let player = players[0];
let defCe = await getLadderDefCe(player.roleId);

View File

@@ -772,7 +772,7 @@ export class Rank {
}
// 获取区间里的排行榜,格式 {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 key = this.keyName.getName();
if (this.isUnion) {
@@ -780,11 +780,11 @@ export class Rank {
}
const rankFromDb = isReverse?
((max == '+inf' && min == '-inf')?
(((max == '+inf' && min == '-inf') || byScore)?
(await redisClient().zrevrangebyscoreAsync(key, max, min, "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().zrangeAsync(key, <number>min, <number>max, "WITHSCORES"))
)
@@ -798,8 +798,8 @@ export class Rank {
return ranks
}
public async getRankByRange(max: number | string = '+inf', min: number | string = '-inf', isReverse = true) {
let raws = await this.getRankByRangeRaw(max, min, isReverse);
public async getRankByRange(max: number | string = '+inf', min: number | string = '-inf', isReverse = true, byScore = false) {
let raws = await this.getRankByRangeRaw(max, min, isReverse, byScore);
let ranks = new Array<RoleRankInfo | GuildRankInfo | LeagueRankInfo>();
let l = 1;