fix pvpEnd无法获取数据
This commit is contained in:
@@ -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()});
|
||||
|
||||
@@ -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 判空处理 */ }
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user