名将擂台:刷新对手

This commit is contained in:
luying
2022-07-19 17:14:11 +08:00
parent 4ee1f25876
commit 7394f14e9d
17 changed files with 48281 additions and 72 deletions
+17 -1
View File
@@ -1,6 +1,6 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, mongoose, Ref } from '@typegoose/typegoose';
import { LadderDefense, } from '../domain/battleField/ladder';
import { LadderDefense, LadderOppPlayerInDB } from '../domain/battleField/ladder';
import Role from './Role';
@index({ roleId: 1 })
@@ -19,6 +19,9 @@ export default class LadderMatch extends BaseModel {
@prop({ required: true, default: null, _id: false })
defense: LadderDefense;
@prop({ required: true, type: LadderOppPlayerInDB, default: [], _id: false })
oppPlayers: LadderOppPlayerInDB[];
@prop({ required: true, default: () => { return new Date() } })
refDaily: Date; // 每日刷新,控制refOppCnt和setAttackCnt
@prop({ required: true, default: 0 })
@@ -46,6 +49,19 @@ export default class LadderMatch extends BaseModel {
const defense: LadderMatchType = await LadderMatchModel.findOneAndUpdate({ roleId }, { $set: params}, { new: true }).lean();
return defense;
}
public static async findAll(serverId: number) {
let result: LadderMatchType[] = [], latestTime = new Date();
while(latestTime) {
let ladderMatch = await LadderMatchModel.find({ serverId, rank: { $gt: 0 }, createdAt: { $lt: latestTime } })
.sort({ createdAt: -1 })
.populate('role', 'roleId roleName head frame spine heads frames spines title lv updatedAt')
.limit(1000);
result.push(...ladderMatch);
latestTime = ladderMatch[ladderMatch.length - 1]?.createdAt;
}
return result
}
}
export const LadderMatchModel = getModelForClass(LadderMatch);