🐞 fix(gvg): 添加情报页面

This commit is contained in:
luying
2023-03-04 14:50:05 +08:00
parent c591213377
commit 34c75c65b1
9 changed files with 180 additions and 14 deletions

View File

@@ -44,11 +44,15 @@ class GuildActive {
}
@index({ leagueCode: 1, configId: 1 })
@index({ configId: 1, lv: -1 })
export default class GVGLeaguePrepare extends BaseModel {
@prop({ required: true })
configId: number; // 赛期配置id
@prop({ required: true })
groupKey: string; // 战区
@prop({ required: true })
leagueCode: string; // 联军
@@ -82,12 +86,12 @@ export default class GVGLeaguePrepare extends BaseModel {
@prop({ required: true, default: [], type: GuildActive, _id: false })
guildActive: GuildActive[]; // 军团活跃
public static async initData(configId: number, leagueCode: string, maxMemberCnt: number) {
public static async initData(configId: number, groupKey: string, leagueCode: string, maxMemberCnt: number) {
const doc = new GVGLeaguePrepareModel();
const update = Object.assign(doc.toJSON(), { maxMemberCnt });
delete update._id;
const result: GVGLeaguePrepareType = await GVGLeaguePrepareModel.findOneAndUpdate({ configId, leagueCode }, { $setOnInsert: update }, { upsert: true, new: true })
const result: GVGLeaguePrepareType = await GVGLeaguePrepareModel.findOneAndUpdate({ configId, leagueCode, groupKey }, { $setOnInsert: update }, { upsert: true, new: true })
.select({ _id: 0, __v: 0, createdAt: 0, updatedAt: 0 }).lean();
return result;
}
@@ -97,6 +101,12 @@ export default class GVGLeaguePrepare extends BaseModel {
return result;
}
public static async findByLeagueCodes(configId: number, leagueCodes: string[]) {
const result: GVGLeaguePrepareType[] = await GVGLeaguePrepareModel.findOne({ configId, leagueCode: { $in: leagueCodes } }).lean();
return result;
}
public static async chooseJob(configId: number, leagueCode: string, job: LEAGUE_JOB) {
if(job == LEAGUE_JOB.FIGHTER) {
const result: GVGLeaguePrepareType = await GVGLeaguePrepareModel.findOneAndUpdate({ configId, leagueCode }, { $inc: { fighterCnt: 1 } }, { new: true }).lean();
@@ -146,6 +156,11 @@ export default class GVGLeaguePrepare extends BaseModel {
const result: GVGLeaguePrepareType[] = await GVGLeaguePrepareModel.aggregate([{ $match: {configId} }]);
return result;
}
public static async getLvRank(configId: number) {
const result: GVGLeaguePrepareType[] = await GVGLeaguePrepareModel.find({ configId }).sort({ lv: -1 }).lean();
return result;
}
}
export const GVGLeaguePrepareModel = getModelForClass(GVGLeaguePrepare);