🐞 fix(战报): 修复pvp上传战报时记录还未创建的问题
This commit is contained in:
@@ -191,6 +191,8 @@ export class PvpHandler {
|
|||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
await checkTask(serverId, roleId, sid, TASK_TYPE.PVP);
|
await checkTask(serverId, roleId, sid, TASK_TYPE.PVP);
|
||||||
|
// 战报记录
|
||||||
|
await PvpRecordModel.createRec(roleId, robotIdComBack(oppRoleId), battleCode);
|
||||||
|
|
||||||
// 对手记录更新
|
// 对手记录更新
|
||||||
await PvpHistoryOppModel.setStatus(curOpp.oppDef.toString(), 1);
|
await PvpHistoryOppModel.setStatus(curOpp.oppDef.toString(), 1);
|
||||||
@@ -264,7 +266,7 @@ export class PvpHandler {
|
|||||||
|
|
||||||
let seasonNum: number = this.app.get('pvpSeasonNum');
|
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
|
// 更新battleRecord
|
||||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||||
@@ -597,7 +599,7 @@ export class PvpHandler {
|
|||||||
let pvpRecords = await PvpRecordModel.getRecByRoleId(roleId);
|
let pvpRecords = await PvpRecordModel.getRecByRoleId(roleId);
|
||||||
let serverNames = await getAllServerName();
|
let serverNames = await getAllServerName();
|
||||||
for(let record of pvpRecords) {
|
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.defenseInfo) record.defenseInfo['serverName'] = serverNames[record.defenseInfo.serverId];
|
||||||
if(record.attackInfo) record.attackInfo['serverName'] = serverNames[record.attackInfo.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 })
|
@prop({ required: true, default: 0 })
|
||||||
timeout: boolean;
|
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();
|
await this.delPvpRecords();
|
||||||
let code = genCode(6);
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async getRecByRoleId( roleId: string, limit = 15, lean = true) {
|
public static async getRecByRoleId( roleId: string, limit = 15, lean = true) {
|
||||||
await this.delPvpRecords();
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user