From 95b3c0a88050c745fac4881bcf44801ee661873e Mon Sep 17 00:00:00 2001 From: luying Date: Sat, 6 May 2023 20:23:24 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E6=8E=92=E8=A1=8C=E6=A6=9C)?= =?UTF-8?q?:=20=E5=90=8D=E5=B0=86=E6=93=82=E5=8F=B0=E7=9A=84=E6=8E=92?= =?UTF-8?q?=E8=A1=8C=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/ladderService.ts | 2 +- game-server/app/services/rankService.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/game-server/app/services/ladderService.ts b/game-server/app/services/ladderService.ts index 05ecf2ec2..d88d4a3c5 100644 --- a/game-server/app/services/ladderService.ts +++ b/game-server/app/services/ladderService.ts @@ -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 = await r.getRankByRange(rank, rank); + let players = await r.getRankByRange(rank, rank, false, true); if(players.length > 0) { let player = players[0]; let defCe = await getLadderDefCe(player.roleId); diff --git a/game-server/app/services/rankService.ts b/game-server/app/services/rankService.ts index 855cd4e25..15ad022fb 100644 --- a/game-server/app/services/rankService.ts +++ b/game-server/app/services/rankService.ts @@ -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, min, max, "WITHSCORES")) ): - ((max == '+inf' && min == '-inf')? + (((max == '+inf' && min == '-inf') || byScore)? (await redisClient().zrangebyscoreAsync(key, min, max, "WITHSCORES")): (await redisClient().zrangeAsync(key, min, 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(); let l = 1;