名将擂台:刷新对手
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user