🐞 fix(battle): 优化武将擂台战报查询
This commit is contained in:
@@ -4,6 +4,7 @@ import { isArray, pick } from 'underscore';
|
|||||||
import { gameData } from '../../../pubUtils/data';
|
import { gameData } from '../../../pubUtils/data';
|
||||||
import { STATUS } from '../../../consts/statusCode';
|
import { STATUS } from '../../../consts/statusCode';
|
||||||
import { arrToMap, resResult } from '../../../pubUtils/util';
|
import { arrToMap, resResult } from '../../../pubUtils/util';
|
||||||
|
import { getTimeFunM } from '../../../pubUtils/timeUtil';
|
||||||
import { LadderMatchModel, LadderUpdateInter } from '../../../db/LadderMatch';
|
import { LadderMatchModel, LadderUpdateInter } from '../../../db/LadderMatch';
|
||||||
import { battleEndWhenChange, checkRank, generateInitRecInfo, generateOppPlayers, getBuyCntCost, getLadderData, getLadderEnemies, getLadderOppDetailData, getLadderOppStatus, getNumberArr, ladderBattleEndReward, refreshLadderDaily, refreshLadderEnemies, sendLadderDailyReward, uniqueArr } from '../../../services/ladderService';
|
import { battleEndWhenChange, checkRank, generateInitRecInfo, generateOppPlayers, getBuyCntCost, getLadderData, getLadderEnemies, getLadderOppDetailData, getLadderOppStatus, getNumberArr, ladderBattleEndReward, refreshLadderDaily, refreshLadderEnemies, sendLadderDailyReward, uniqueArr } from '../../../services/ladderService';
|
||||||
import { LadderDataReturn, LadderDefense, LadderDefenseHero, LadderOppDetailReturn, LadderOppLineupReturn, LadderOppPlayerHeroInfo, LadderOppPlayerReturn } from '../../../domain/battleField/ladder';
|
import { LadderDataReturn, LadderDefense, LadderDefenseHero, LadderOppDetailReturn, LadderOppLineupReturn, LadderOppPlayerHeroInfo, LadderOppPlayerReturn } from '../../../domain/battleField/ladder';
|
||||||
@@ -356,10 +357,7 @@ export class LadderHandler {
|
|||||||
// 12. 获取战报信息(2天内)
|
// 12. 获取战报信息(2天内)
|
||||||
async getRec(msg: {}, session: BackendSession) {
|
async getRec(msg: {}, session: BackendSession) {
|
||||||
let roleId = session.get('roleId');
|
let roleId = session.get('roleId');
|
||||||
let endTime = new Date().getTime();
|
let list = await LadderMatchRecModel.findRecentRec(roleId, <number>getTimeFunM().getBeforeDay(2));
|
||||||
const dayMs = 1000 * 60 * 60 * 24;
|
|
||||||
let startTime = endTime - dayMs * 2;
|
|
||||||
let list = await LadderMatchRecModel.findRecByTimeRange(roleId, startTime, endTime);
|
|
||||||
return resResult(STATUS.SUCCESS, {
|
return resResult(STATUS.SUCCESS, {
|
||||||
list: list.map(rec => {
|
list: list.map(rec => {
|
||||||
const { roleId1, battleCode, hasRpl } = rec;
|
const { roleId1, battleCode, hasRpl } = rec;
|
||||||
|
|||||||
@@ -105,14 +105,13 @@ export default class LadderMatchRec extends BaseModel {
|
|||||||
* 按时间区间查询名将擂台战报(用战斗结束时间(endTime)做比较)
|
* 按时间区间查询名将擂台战报(用战斗结束时间(endTime)做比较)
|
||||||
* @static
|
* @static
|
||||||
* @param {string} roleId
|
* @param {string} roleId
|
||||||
* @param {number} startTime 开始时间(13位时间戳)
|
* @param {number} startMs 开始时间(13位时间戳)
|
||||||
* @param {number} endTime 结束时间 (13位时间戳)
|
|
||||||
* @return {*}
|
* @return {*}
|
||||||
* @memberof LadderMatchRec
|
* @memberof LadderMatchRec
|
||||||
*/
|
*/
|
||||||
public static async findRecByTimeRange(roleId: string, startTime: number, endTime: number) {
|
public static async findRecentRec(roleId: string, startMs: number) {
|
||||||
let recs: LadderMatchRecType[] = await LadderMatchRecModel.find({
|
let recs: LadderMatchRecType[] = await LadderMatchRecModel.find({
|
||||||
endTime: {$gt: startTime, $lt: endTime},
|
endTime: { $gt: startMs },
|
||||||
$or: [{roleId1: roleId}, { roleId2: roleId }],
|
$or: [{roleId1: roleId}, { roleId2: roleId }],
|
||||||
status: LADDER_STATUS.COMPLETE
|
status: LADDER_STATUS.COMPLETE
|
||||||
}).select({ battleCode: 1, roleId1: 1, roleId2: 1, _id: -1, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1 }).limit(1000).lean();
|
}).select({ battleCode: 1, roleId1: 1, roleId2: 1, _id: -1, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1 }).limit(1000).lean();
|
||||||
|
|||||||
Reference in New Issue
Block a user