🐞 fix(battle): 名将擂台战报保留2天
This commit is contained in:
@@ -353,10 +353,13 @@ export class LadderHandler {
|
||||
return resResult(STATUS.SUCCESS, pick(result, ['buyCnt', 'challengeCnt']));
|
||||
}
|
||||
|
||||
// 12. 获取战报信息
|
||||
// 12. 获取战报信息(2天内)
|
||||
async getRec(msg: {}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let list = await LadderMatchRecModel.findRec(roleId);
|
||||
let endTime = new Date().getTime();
|
||||
const dayMs = 1000 * 60 * 60 * 24;
|
||||
let startTime = endTime - dayMs * 2;
|
||||
let list = await LadderMatchRecModel.findRecByTimeRange(roleId, startTime, endTime);
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
list: list.map(rec => {
|
||||
const { roleId1, battleCode, hasRpl } = rec;
|
||||
|
||||
@@ -574,6 +574,73 @@ describe('战斗测试', function () {
|
||||
it.skip('领取奖励', function (done) {
|
||||
done();
|
||||
});
|
||||
|
||||
it('获取名将擂台战报', function (done) {
|
||||
pinusClient.request('battle.ladderHandler.getRec', {}, (res) => {
|
||||
checkSuccessResponse(res);
|
||||
expect(res.data.rplPrefixUrl).to.be.an('string');
|
||||
checkLadderMatchRecs(res.data.list);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
// 名将擂台战报校验 - 2天内的战报记录
|
||||
function checkLadderMatchRecs(ladderMatchRecs) {
|
||||
expect(ladderMatchRecs).to.be.an('array');
|
||||
let now = new Date().getTime();
|
||||
ladderMatchRecs.forEach(ladderMatchRec => {
|
||||
expect(ladderMatchRec.battleCode).to.be.a('string');
|
||||
expect(ladderMatchRec.roleId1).to.be.a('string');
|
||||
expect(ladderMatchRec.roleId2).to.be.a('string');
|
||||
let timeDiff = now - ladderMatchRec.endTime;
|
||||
expect(timeDiff).to.greaterThan(0);
|
||||
expect(ladderMatchRec.rplFileUrl).to.be.a('string');
|
||||
|
||||
// ladderMatchRec.attackInfo
|
||||
expect(ladderMatchRec.attackInfo.lv).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.head).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.frame).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.spine).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.title).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.ce).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.isSuccess).to.be.a('boolean');
|
||||
expect(ladderMatchRec.attackInfo.oldRank).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.newRank).to.be.a('number');
|
||||
expect(ladderMatchRec.attackInfo.roleId).to.be.a('string');
|
||||
expect(ladderMatchRec.attackInfo.roleName).to.be.a('string');
|
||||
expect(ladderMatchRec.attackInfo.heroes).to.be.a('array');
|
||||
ladderMatchRec.attackInfo.heroes.forEach(hero => {
|
||||
expect(hero.hid).to.be.a('number');
|
||||
expect(hero.skinId).to.be.a('number');
|
||||
expect(hero.quality).to.be.a('number');
|
||||
expect(hero.star).to.be.a('number');
|
||||
expect(hero.colorStar).to.be.a('number');
|
||||
expect(hero.lv).to.be.a('number');
|
||||
});
|
||||
|
||||
// ladderMatchRec.defenseInfo
|
||||
expect(ladderMatchRec.defenseInfo.lv).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.head).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.frame).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.spine).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.title).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.ce).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.isSuccess).to.be.a('boolean');
|
||||
expect(ladderMatchRec.defenseInfo.oldRank).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.newRank).to.be.a('number');
|
||||
expect(ladderMatchRec.defenseInfo.roleId).to.be.a('string');
|
||||
expect(ladderMatchRec.defenseInfo.roleName).to.be.a('string');
|
||||
expect(ladderMatchRec.defenseInfo.heroes).to.be.a('array');
|
||||
ladderMatchRec.defenseInfo.heroes.forEach(hero => {
|
||||
expect(hero.hid).to.be.a('number');
|
||||
expect(hero.skinId).to.be.a('number');
|
||||
expect(hero.quality).to.be.a('number');
|
||||
expect(hero.star).to.be.a('number');
|
||||
expect(hero.colorStar).to.be.a('number');
|
||||
expect(hero.lv).to.be.a('number');
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
function getParamHeroes(roleInfo) {
|
||||
|
||||
@@ -101,6 +101,24 @@ export default class LadderMatchRec extends BaseModel {
|
||||
return recs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 按时间区间查询名将擂台战报(用战斗结束时间(endTime)做比较)
|
||||
* @static
|
||||
* @param {string} roleId
|
||||
* @param {number} startTime 开始时间(13位时间戳)
|
||||
* @param {number} endTime 结束时间 (13位时间戳)
|
||||
* @return {*}
|
||||
* @memberof LadderMatchRec
|
||||
*/
|
||||
public static async findRecByTimeRange(roleId: string, startTime: number, endTime: number) {
|
||||
let recs: LadderMatchRecType[] = await LadderMatchRecModel.find({
|
||||
endTime: {$gt: startTime, $lt: endTime},
|
||||
$or: [{roleId1: roleId}, { roleId2: roleId }],
|
||||
status: LADDER_STATUS.COMPLETE
|
||||
}).select({ battleCode: 1, roleId1: 1, roleId2: 1, _id: -1, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1 }).limit(1000).lean();
|
||||
return recs;
|
||||
}
|
||||
|
||||
public static async checkByRank(serverId: number, roleId2: string) {
|
||||
const result = await LadderMatchRecModel.exists({ serverId, roleId2, status: { $in: [LADDER_STATUS.BATTLE, LADDER_STATUS.CHECK] } });
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user