练兵接口调整,新增获得宝箱和战报

This commit is contained in:
mamengke01
2021-01-28 20:06:00 +08:00
parent a54e5d6d2b
commit 54dde229d3
11 changed files with 327 additions and 116 deletions

View File

@@ -0,0 +1,51 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
class Report {
@prop({ required: true })
roleName: string;
@prop({ required: true })
trainId: number;//挑战的试炼关
@prop({ required: true })
hid: number;//据点
@prop({ required: true })
score: number;
@prop({ required: true })
time: number;
@prop({ required: true })
isSuccessed: boolean;
@prop({ required: true })
type: number;//1表示普通战报 2表示系统战报即被成功压制
}
@index({guildCode: 1, trainId: 1})
export default class GuildTrainReport extends BaseModel {
@prop({ required: true })
guildCode: string;
@prop({ required: true })
trainId: number;
@prop({ required: true, default: [], type: Report, _id: false })
reports: Report[];
public static async pushGuildTrainReports(guildCode: string, trainId: number, reports: Array<Report>, lean = true) {
const guildTrainReport: GuildTrainReportType = await GuildTrainReportModel.findOneAndUpdate({ guildCode, trainId },
{ $push: {reports:{ $each:reports } } },{new: true}).lean(lean);
return guildTrainReport;
}
public static async resetGuildTrainReport(guildCode: string, trainId: number, lean = true) {
const guildTrainReport: GuildTrainReportType = await GuildTrainReportModel.findOneAndUpdate({ guildCode, trainId },
{ $set: {reports:[], guildCode, trainId } }, {new: true, upsert: true}).lean(lean);
return guildTrainReport;
}
public static async findGuildTrainByTrainIds(guildCode: string, trainIds:Array<number>, lean = true) {
const guildTrains: GuildTrainReportType[] = await GuildTrainReportModel.find({ trainId:{ $in:trainIds}, guildCode }).lean(lean);
return guildTrains;
}
}
export const GuildTrainReportModel = getModelForClass(GuildTrainReport);
export interface GuildTrainReportType extends Pick<DocumentType<GuildTrainReport>, keyof GuildTrainReport> { };