🐞 fix(巅峰演武): 赛季切换后结算不再计入

This commit is contained in:
luying
2022-12-09 16:20:30 +08:00
parent 254e063774
commit fb42aae569
4 changed files with 22 additions and 13 deletions

View File

@@ -185,7 +185,7 @@ export class PvpHandler {
status: 0,
warName: warInfo.gk_name,
warType: warInfo.warType,
record: { heroes, pos: curOpp.pos, oppRoleId }
record: { heroes, pos: curOpp.pos, oppRoleId, pvpSeasonNum: seasonNum }
}
}, true);
await checkTask(serverId, roleId, sid, TASK_TYPE.PVP);
@@ -235,7 +235,7 @@ export class PvpHandler {
return resResult(STATUS.BATTLE_STATUS_WRONG);
}
let { record: { heroes: dbHeroes, oppRoleId, pos }, createdAt } = BattleRecord;
let { record: { heroes: dbHeroes, oppRoleId, pos, pvpSeasonNum }, createdAt } = BattleRecord;
let flag = 1; // 对比hero信息
for (let { hid } of myHeroes) {
@@ -260,29 +260,32 @@ export class PvpHandler {
if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND);
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, serverId);
// 战报记录
await PvpRecordModel.createRec({ roleId1: roleId, roleId2: robotIdComBack(oppRoleId), warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds() });
let seasonNum: number = this.app.get('pvpSeasonNum');
// 战报记录
await PvpRecordModel.createRec({ roleId1: roleId, roleId2: robotIdComBack(oppRoleId), warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds(), timeout: seasonNum != pvpSeasonNum });
// 更新battleRecord
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
$set: { status: isSuccess ? 1 : 2 }
}, true);
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, update);
if(seasonNum == pvpSeasonNum) {
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(roleId, update);
}
let result = new PvpDataReturn(); // 返回对象
result.setPvpDefense(pvpDefense);
let oppPlayersReturn = await getEnemies(pvpDefense.oppPlayers, pvpDefense.winStreakNum);
result.setOppPlayers(oppPlayersReturn);
// 加入排行榜
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum });
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
let myRank = await r.getMyRank({ roleId });
result.setMyRank(myRank);
if(seasonNum == pvpSeasonNum) {
// 加入排行榜
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum: pvpSeasonNum });
await r.setRankWithRoleInfo(roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role);
let myRank = await r.getMyRank({ roleId });
result.setMyRank(myRank);
}
await checkTaskInPvpEnd(serverId, roleId, sid, isSuccess, pvpDefense.heroScores, pvpDefense.seasonWinNum);
if(hisWinStreakNum < pvpDefense.hisWinStreakNum) {