feat(校验): 添加战场伤害统计伤害

This commit is contained in:
luying
2023-06-27 13:46:01 +08:00
parent d75101a730
commit 70af186564
10 changed files with 72 additions and 35 deletions
+16
View File
@@ -6,6 +6,17 @@ import { LineupParam } from '../domain/rank';
* 战斗记录接口
*/
class DamageRecord {
@prop({ required: true })
hid: number;
@prop({ required: true })
damage: number;
@prop({ required: true })
heal: number;
@prop({ required: true })
underDamage: number;
}
class Record {
@prop({ required: true, type: Number })
heroes?: Array<number>; // 武将id
@@ -37,6 +48,11 @@ class Record {
encourageCnt?: number;
@prop({ required: false })
pvpSeasonNum?: number;
@prop({ required: false, type: DamageRecord, _id: false })
damageRecord?: DamageRecord[];
@prop({ required: false })
round?: number;
}
@index({ roleId: 1, battleId: 1 })
+6 -5
View File
@@ -115,8 +115,8 @@ export class PvpRecordPlayerInfo {
@index({ code: 1 })
@index({ battleCode: 1 })
@index({ roleId1: 1, updatedAt: -1 })
@index({ roleId2: 1, updatedAt: -1 })
@index({ roleId1: 1, createTime: -1 })
@index({ roleId2: 1, createTime: -1 })
export default class PvpRecord extends BaseModel {
@prop({ required: true })
@@ -146,7 +146,7 @@ export default class PvpRecord extends BaseModel {
timeout: boolean;
public static async createRec(roleId1: string, roleId2: string, battleCode: string) {
await this.delPvpRecords();
// await this.delPvpRecords();
let code = genCode(6);
const result = await PvpRecordModel.findOneAndUpdate({ code }, { $set: { roleId1, roleId2, battleCode } }, { new: true, upsert: true }).lean();
return result;
@@ -158,8 +158,9 @@ export default class PvpRecord extends BaseModel {
}
public static async getRecByRoleId( roleId: string, limit = 15, lean = true) {
await this.delPvpRecords();
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);
// await this.delPvpRecords();
let t = <number>getTimeFun().getBeforeDayWithHour(3);
const result: PvpRecord[] = await PvpRecordModel.find({ $or:[{roleId1: roleId}, {roleId2: roleId}], createTime: { $gt: t } }).select('-_id -__v -createdAt -updatedAt').limit(limit).sort({createTime: -1}).lean(lean);
return result;
}