🐞 fix(战报): 修复pvp上传战报时记录还未创建的问题
This commit is contained in:
@@ -191,6 +191,8 @@ export class PvpHandler {
|
||||
}
|
||||
}, true);
|
||||
await checkTask(serverId, roleId, sid, TASK_TYPE.PVP);
|
||||
// 战报记录
|
||||
await PvpRecordModel.createRec(roleId, robotIdComBack(oppRoleId), battleCode);
|
||||
|
||||
// 对手记录更新
|
||||
await PvpHistoryOppModel.setStatus(curOpp.oppDef.toString(), 1);
|
||||
@@ -264,7 +266,7 @@ export class PvpHandler {
|
||||
|
||||
let seasonNum: number = this.app.get('pvpSeasonNum');
|
||||
// 战报记录
|
||||
await PvpRecordModel.createRec({ roleId1: roleId, roleId2: robotIdComBack(oppRoleId), battleCode, warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds(), timeout: seasonNum != pvpSeasonNum });
|
||||
await PvpRecordModel.updateByBattleCode(battleCode, { warId: BattleRecord.battleId, attackInfo, defenseInfo, createTime: nowSeconds(), timeout: seasonNum != pvpSeasonNum });
|
||||
|
||||
// 更新battleRecord
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||
@@ -597,7 +599,7 @@ export class PvpHandler {
|
||||
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])
|
||||
// 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];
|
||||
}
|
||||
|
||||
@@ -143,16 +143,21 @@ export default class PvpRecord extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
timeout: boolean;
|
||||
|
||||
public static async createRec(param: { roleId1: string, roleId2: string, battleCode: string, warId: number, attackInfo: PvpRecordPlayerInfo, defenseInfo: PvpRecordPlayerInfo, createTime: number, timeout?: boolean }) {
|
||||
public static async createRec(roleId1: string, roleId2: string, battleCode: string) {
|
||||
await this.delPvpRecords();
|
||||
let code = genCode(6);
|
||||
const result = await PvpRecordModel.findOneAndUpdate({ code }, param, { new: true, upsert: true }).lean();
|
||||
const result = await PvpRecordModel.findOneAndUpdate({ code }, { $set: { roleId1, roleId2, battleCode } }, { new: true, upsert: true }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async updateByBattleCode(battleCode: string, param: { warId: number, attackInfo: PvpRecordPlayerInfo, defenseInfo: PvpRecordPlayerInfo, createTime: number, timeout?: boolean }) {
|
||||
const result = await PvpRecordModel.findOneAndUpdate({ battleCode }, param, { new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async getRecByRoleId( roleId: string, limit = 15, lean = true) {
|
||||
await this.delPvpRecords();
|
||||
const result: PvpRecord[] = await PvpRecordModel.find({ $or:[{roleId1: roleId}, {roleId2: roleId}] }).select('-_id -__v -createdAt -updatedAt').limit(limit).sort({createTime: -1}).lean(lean);
|
||||
const result: PvpRecord[] = await PvpRecordModel.find({ $or:[{roleId1: roleId}, {roleId2: roleId}], createTime: { $gt: 0 } }).select('-_id -__v -createdAt -updatedAt').limit(limit).sort({createTime: -1}).lean(lean);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user