fix pvpEnd无法获取数据

This commit is contained in:
luying
2021-01-14 16:22:00 +08:00
parent 5823a1b3eb
commit eb7a02b6ae
4 changed files with 6 additions and 5 deletions

View File

@@ -253,7 +253,7 @@ export class PvpHandler {
if(score > hisScore) hisScore = score;
let pLv = getLvByScore(heroScores);
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppRoleId, oppHeroes, role.lv);
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, role.lv);
// 战报记录
await PvpRecordModel.createRec({roleId1: roleId, roleId2: oppRoleId, warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds()});

View File

@@ -67,6 +67,7 @@ export async function getEnemies(oppPlayers: OppPlayers[], winStreakNum: number)
for(let oppPlayer of oppPlayers) {
let dicOpponent = dicPvpOpponent.get(oppPlayer.pos);
let oppDef = <PvpHistoryOppType>oppPlayer.oppDef; // select 'oppRoleId pos roleName headHid sHid rankLv pLv defCe'
delete oppDef.heroes;
result.push({
...oppDef,
roleId: oppDef.oppRoleId,
@@ -382,7 +383,7 @@ export function comsumeChallengeCnt( challengeCnt: number, challengeRefTime: num
}
export async function findPvpDefByRoleId(roleId: string) {
let pvpDefense = await PvpDefenseModel.findByRoleId(roleId);
let pvpDefense = await PvpDefenseModel.findByRoleIdIncludeAll(roleId);
let {warId, seasonNum, seasonEndTime} = await SystemConfigModel.findSystemConfig();
if (pvpDefense.seasonNum !== seasonNum) {
let newPvpDefense = await setPvpDefResult(pvpDefense, seasonNum, seasonEndTime);
@@ -545,7 +546,7 @@ export async function generMyRecInfo(heroScores: HeroScores[], winStreakNum: num
}
// 获取对手战报记录
export async function generPVPOppRecInfo(isSuccess: boolean, curOpp: OppPlayers, oppRoleId: string, oppHeroes: pvpEndParamInter[], myLv: number) {
export async function generPVPOppRecInfo(isSuccess: boolean, curOpp: OppPlayers, oppHeroes: pvpEndParamInter[], myLv: number) {
let oppHeroRecords = new Array<HeroesRecord>();
let oppRole = <PvpHistoryOppType>curOpp.oppDef;
if(!oppRole) { /* TODO 判空处理 */ }

View File

@@ -131,7 +131,7 @@ export async function setPvpDefResult(pvpDefense: PvpDefenseType, seasonNum: num
return;
}
let {score, pLv, heroScores, winStreakNum, challengeCnt, challengeRefTime, goods } = await checkResult(pvpDefense, seasonNum, seasonEndTime);
pvpDefense = await PvpDefenseModel.updateInfo(pvpDefense.roleId, {score, pLv, heroScores, winStreakNum, seasonNum, challengeCnt, challengeRefTime, seasonEndTime, oldSeasonEndTime: pvpDefense.oldSeasonEndTime});
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(pvpDefense.roleId, {score, pLv, heroScores, winStreakNum, seasonNum, challengeCnt, challengeRefTime, seasonEndTime, oldSeasonEndTime: pvpDefense.oldSeasonEndTime});
let { roleName, lv, vLv, headHid, sHid, title , roleId } = role;
let params = new RankParam(roleName, lv, vLv, headHid, sHid, title);
setRank(REDIS_KEY.PVP_RANK, 0, pvpDefense.roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), params);

View File

@@ -216,7 +216,7 @@ export default class PvpDefense extends BaseModel {
delete update._id;
let result: PvpDefenseType = await PvpDefenseModel.findOneAndUpdate({roleId}, {$set:update}, {new: true})
.populate('role', 'headHid sHid topFiveCe roleId roleName lv')
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv pLv defCe').lean();
.populate('oppPlayers.oppDef', 'oppRoleId pos roleName headHid sHid rankLv pLv defCe heroes').lean();
return result;
}
public static async updateInfo(roleId: string, update: pvpUpdateInter, lean = true) {