From 3b30c5886bfb1a97a41743fab98d0ac8bcb34920 Mon Sep 17 00:00:00 2001 From: zhl Date: Mon, 18 Jan 2021 20:07:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96=E8=B5=9B?= =?UTF-8?q?=E5=AD=A3=E8=AF=A6=E6=83=85=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/api.md | 36 ++++++++++++++++++++++++++++ src/controllers/AccountController.ts | 14 ++++++++++- src/controllers/RecordController.ts | 7 +++++- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/docs/api.md b/docs/api.md index b6a67b3..f2c8013 100644 --- a/docs/api.md +++ b/docs/api.md @@ -53,6 +53,7 @@ season_rank: 1 // 当前赛季排名 match_score: 1000 //当前匹配分, 用于匹配时上传 season_score: 1000 // 排位分, 用于显示 + season_data: {} // 当前赛季统计信息, 内容同接口11 } ``` @@ -279,6 +280,41 @@ } ``` +### 11. 赛季统计信息 +1. Method: POST +2. URI: /api/:accountid/season_data + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | + + + + +3. Response: JSON + +```json +{ + "0": 477, //最高伤害 + "1": 62, // 最高承伤 + "2": 289, // 最高总战力 + "3": 150, // 最高单体战力 + "4": 6, // 最高每局胡牌数 + "5": 0, // 每局最多送给队友抽牌数 + "0_total": 1071.3, // 所有伤害积分 + "1_total": 86, // 所有承伤积分 + "2_total": 1302, // 最高总战力积分 + "3_total": 1325, // 单体战力总积分 + "4_total": 390, // 所有胡牌数 + "5_total": 0, // 赠送牌数 + "honor_ap": 4174.3, // 历史战功和 + "mvp_ap": 4174.3, // mvp积分和 + "win": 5, // 胜利场数, + "lost": 0, // 失败场数 + "score": 1281.061909262327, // 当前天体分 + "match_score": 2921.59286389349 // 当前匹配分 +} +``` ## 三. 服务端接口列表 diff --git a/src/controllers/AccountController.ts b/src/controllers/AccountController.ts index 1e92a2e..795cd16 100644 --- a/src/controllers/AccountController.ts +++ b/src/controllers/AccountController.ts @@ -60,16 +60,28 @@ export default class AccountController extends BaseController { for(let [key, hero] of account.heros) { heros.push(hero.toJson()); } + result.heros = heros; await account.save(); result.moneys = account.moneys; result.normal_stat= account.normal_stat; result.extinfo = account.extinfo; result.season_score = account.season_score; + result.season_data = account.season_data; + result.match_score = account.getMatchScore(); + return result; + } + @router('post /api/:accountid/season_data') + async seasonData(req: any) { + let result: any = {}; + let account = req.user; + for (let [key, val] of account.season_data) { + result[key] = val; + } + result.score = account.season_score; result.match_score = account.getMatchScore(); return result; } - @router('post /api/:accountid/cards') async cardlist(req: any) { let account = req.user; diff --git a/src/controllers/RecordController.ts b/src/controllers/RecordController.ts index 384b607..f9d266f 100644 --- a/src/controllers/RecordController.ts +++ b/src/controllers/RecordController.ts @@ -96,7 +96,12 @@ export default class RecordController extends BaseController { // @ts-ignore let val = Number(statData[key]); honorp += val * scores[numKey]; - user.season_data.inc(key + '_total', val * scores[numKey]); + if (numKey == 4 || numKey == 5) { + user.season_data.inc(key + '_total', val); + } else { + user.season_data.inc(key + '_total', val * scores[numKey]); + } + if (user.season_data.has(key + '')) { user.season_data.set(key + '', Math.max(user.season_data.get(key + ''), val)) } else {