✨ feat(巅峰演武): 详细信息&战报添加区服名

This commit is contained in:
luying
2022-11-08 15:38:28 +08:00
parent 2eb2bc7573
commit fb17ed3c6a
4 changed files with 29 additions and 8 deletions
@@ -18,13 +18,13 @@ import { pick } from "underscore";
import { HeroModel } from '../../../db/Hero';
import PvpHistoryOpp, { PvpHistoryOppModel } from '../../../db/PvpHistoryOpp';
import { BattleRecordModel } from '../../../db/BattleRecord';
import { PvpRecordModel } from '../../../db/PvpRecord';
import { PvpRecordModel, PvpRecordParam, PvpRecordType } from '../../../db/PvpRecord';
import { pvpEndParamInter } from '../../../pubUtils/interface';
import { getSeconds, nowSeconds } from '../../../pubUtils/timeUtil';
import { PlayerDetail, PlayerDetailHero } from '../../../domain/battleField/guild';
import { PvpSaveDataModel } from '../../../db/PvpSaveData';
import { PVPConfigModel } from '../../../db/PvpConfig';
import { getAllServerName } from '../../../services/redisService';
import { getAllServerName, getServerName } from '../../../services/redisService';
import { RoleRankInfo } from '../../../domain/rank';
export default function (app: Application) {
@@ -257,7 +257,7 @@ export class PvpHandler {
let curOpp = pvpDefense.oppBeforePlayers.find(cur => cur.roleId == oppRoleId && cur.pos == pos);
if (!curOpp) return resResult(STATUS.PVP_ROLE_NOT_FOUND);
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, role.lv);
const defenseInfo = await generPVPOppRecInfo(isSuccess, curOpp, oppHeroes, serverId);
// 战报记录
await PvpRecordModel.createRec({ roleId1: roleId, roleId2: robotIdComBack(oppRoleId), warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds() });
@@ -498,6 +498,7 @@ export class PvpHandler {
async getPlayerDetail(msg: { roleId: string }, session: BackendSession) {
let roleId = session.get('roleId');
let serverId = session.get('serverId');
let { roleId: oppoRoleId } = msg;
let isRobot = checkRoleIsRobot(oppoRoleId);
@@ -525,6 +526,7 @@ export class PvpHandler {
}
result = new PlayerDetail(pvpHistoryOpp.oppRoleId, heroes, pvpHistoryOpp.rankLv);
result.setRobot(pvpHistoryOpp);
result.setServerName(await getServerName(serverId));
} else { // 查询对方pvpDefense
let pvpDefense = await PvpDefenseModel.findByRoleId(oppoRoleId);
let dbHeroes = await HeroModel.findByRole(oppoRoleId);
@@ -545,6 +547,7 @@ export class PvpHandler {
result = new PlayerDetail(oppoRoleId, heroes, rank);
result.setPlayer(role);
result.setPvpDefense(pvpDefense);
result.setServerName(await getServerName(role.serverId));
}
return resResult(STATUS.SUCCESS, result);
@@ -583,6 +586,13 @@ export class PvpHandler {
async getRec(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let pvpRecords = await PvpRecordModel.getRecByRoleId(roleId);
let serverNames = await getAllServerName();
for(let record of pvpRecords) {
console.log('#####', record.defenseInfo.serverId, serverNames, serverNames[record.defenseInfo.serverId])
if(record.defenseInfo) record.defenseInfo['serverName'] = serverNames[record.defenseInfo.serverId];
if(record.attackInfo) record.attackInfo['serverName'] = serverNames[record.attackInfo.serverId];
}
return resResult(STATUS.SUCCESS, { list: pvpRecords });
}
+2 -2
View File
@@ -500,7 +500,7 @@ export function calLineupScore(lineup: Attack|Defense, heroScores: HeroScore[])
}
// 获取对手战报记录
export async function generPVPOppRecInfo(isSuccess: boolean, curOpp: OppPlayer, oppHeroes: pvpEndParamInter[], myLv: number) {
export async function generPVPOppRecInfo(isSuccess: boolean, curOpp: OppPlayer, oppHeroes: pvpEndParamInter[], serverId: number) {
let oppHeroRecords = new Array<HeroesRecord>();
let oppRole = <PvpHistoryOppType>curOpp.oppDef;
if (!oppRole) { console.error('opp role not found') }
@@ -547,7 +547,7 @@ export async function generPVPOppRecInfo(isSuccess: boolean, curOpp: OppPlayer,
}
let defenseInfo = new PvpRecordPlayerInfo();
defenseInfo.setByHistoryOpp(oppRole, oppHeroRecords, !isSuccess, isSuccess ? 0 : addSumScore)
defenseInfo.setByHistoryOpp(oppRole, oppHeroRecords, !isSuccess, isSuccess ? 0 : addSumScore, serverId)
return defenseInfo
}