From 665a69ff39d203365704984040f925594f82f7de Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 19 May 2021 15:10:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=80=BB=E4=BA=BA=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/api.md | 7 ++++--- src/api/controllers/exam.controller.ts | 5 +++-- src/api/controllers/puzzle.controller.ts | 6 +++--- src/services/GameLogic.ts | 6 ++++-- src/services/Rank.ts | 4 ++++ 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/doc/api.md b/doc/api.md index ed051c1..8307428 100644 --- a/doc/api.md +++ b/doc/api.md @@ -179,8 +179,8 @@ | 字段 | 说明 | | -------- | -------------------------------------- | | shop | 店铺id | -| level | 关卡id | -| mode | 游戏类型, 0: 单人, 1: 多人 | +| level | 关卡id | +| mode | 游戏类型, 0: 单人, 1: 多人, 2: 挑战 | | skip | 数据开始的偏移值, 从0开始, 默认0 | | limit | 每次返回的数量条数, 默认10 | @@ -196,7 +196,8 @@ 'nickname', 昵称(暂无) 'avatar' 头像 ] - ] + ], + rankTotal: 99 排行榜总人数 } ``` diff --git a/src/api/controllers/exam.controller.ts b/src/api/controllers/exam.controller.ts index 163ccf3..e30e7a4 100644 --- a/src/api/controllers/exam.controller.ts +++ b/src/api/controllers/exam.controller.ts @@ -132,14 +132,15 @@ class ExamController extends BaseController { level: history.activityId, accountId: accountid, score: statMap.score, - mode: 0, + mode: 2, session: history.id } await history.save() await updateExamRank(rankObj) - let {rankList, userRank } = await getRank({shop: history.shop, level: history.activityId, accountId: accountid, mode: 0, skip: 0, limit: 20}) + let {rankList, userRank, rankTotal } = await getRank({shop: history.shop, level: history.activityId, accountId: accountid, mode: 2, skip: 0, limit: 20}) rspData.rankList = rankList rspData.userRank = userRank + rspData.rankTotal = rankTotal } rspData.gameResult = gameResult return rspData diff --git a/src/api/controllers/puzzle.controller.ts b/src/api/controllers/puzzle.controller.ts index 2cbe038..8ec849e 100644 --- a/src/api/controllers/puzzle.controller.ts +++ b/src/api/controllers/puzzle.controller.ts @@ -291,11 +291,11 @@ class PuzzleController extends BaseController { @role('anon') @router('post /api/:accounid/puzzle/rank') - async singleRank(req, res) { + async singleRank(req) { let {shop, level, accountid, mode, skip, limit} = req.params skip = skip || 0 limit = limit || 10 - let {rankList, userRank } = await getRank({shop, level, accountId: accountid, mode, skip, limit}) - return {rankList, userRank} + let {rankList, userRank, rankTotal} = await getRank({shop, level, accountId: accountid, mode, skip, limit}) + return {rankList, userRank, rankTotal} } } diff --git a/src/services/GameLogic.ts b/src/services/GameLogic.ts index 0d1703f..91b89fa 100644 --- a/src/services/GameLogic.ts +++ b/src/services/GameLogic.ts @@ -14,7 +14,7 @@ import { GameEnv } from '../config/GameEnv' import { Shop } from '../models/shop/Shop' import { mission_vo } from '../config/parsers/mission_vo' import { ShopActivity } from '../models/shop/ShopActivity' -import { getAccountRank, getRankList, updateRank } from './Rank' +import { getAccountRank, getRankCount, getRankList, updateRank } from './Rank' import { PuzzleRank } from '../models/match/PuzzleRank' @@ -185,7 +185,9 @@ export async function getRank({shop, level, accountId, mode, skip, limit } rankList.push([datas[i], datas[i + 1] << 0]) } let userRank = (await getAccountRank(accountId, key)) || 999 - return {rankList, userRank} + + let rankTotal = (await getRankCount(key)) + return {rankList, userRank, rankTotal} } /** diff --git a/src/services/Rank.ts b/src/services/Rank.ts index 75832a4..1dd5008 100644 --- a/src/services/Rank.ts +++ b/src/services/Rank.ts @@ -72,6 +72,10 @@ export async function getRankList(start: number, end: number, subKey?: string) { return await new RedisClient().zrevrange(generateRankKey(subKey), start, end) } +export async function getRankCount(subKey?: string) { + return await new RedisClient().zcard(generateRankKey(subKey)) +} + /** * 获取帐号附近的几个记录 * @param {string} accountId