添加主动获取奇遇事件,奇遇添加答题逻辑

This commit is contained in:
luying
2020-10-15 18:31:36 +08:00
parent 764de8669a
commit 85940779d2
5 changed files with 1102 additions and 27 deletions
+16 -4
View File
@@ -1,6 +1,14 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
class Question {
@prop({ required: true })
id: number;
@prop({ required: true })
question: string;
@prop({ required: false, type: String })
answer: [string];
}
/**
* 战斗记录接口
*/
@@ -30,10 +38,14 @@ export default class EventRecord extends BaseModel {
battleCode: string; // 关卡类型,关卡code
@prop({ required: true, default: 0 })
turn: number; // 随机的轮数,保证每个event_id都能随机到一次再进行下一轮
@prop({ required: true })
position: {x:number, y: number}; // 位置
@prop({ required: true })
question: Question; // 题库id
public static async getEventRecordByTime(roleId: string, refTime: number, lean=true ) {
let data = await EventRecordModel.find({roleId, refTime}).select('eventCode eventId type quality status battleId').lean(lean);
let data = await EventRecordModel.find({roleId, refTime}).select('eventCode eventId type quality status battleId position question').lean(lean);
return data;
}
@@ -48,10 +60,10 @@ export default class EventRecord extends BaseModel {
return {history: result, turn};
}
public static async saveEventRecord(eventCode: string, params: {roleId: string, refTime: number, eventId: number, roleName:string, turn?: number, type: number, quality: number, battleId?: number, status: number } , lean=true ) {
public static async saveEventRecord(eventCode: string, params: {roleId: string, refTime: number, eventId: number, roleName:string, turn?: number, type: number, quality: number, battleId?: number, status: number, position: {x:number, y:number}, question?: any } , lean=true ) {
let doc = new EventRecordModel();
let update = Object.assign(params, doc.toJSON(), {eventCode});
let data = await EventRecordModel.findOneAndUpdate({eventCode}, { $set: update }, {upsert: true, new: true}).select('eventCode eventId type quality status battleId').lean(lean);
let update = Object.assign(doc.toJSON(), params, {eventCode});
let data = await EventRecordModel.findOneAndUpdate({eventCode}, { $set: update }, {upsert: true, new: true}).select('eventCode eventId type quality status battleId position question').lean(lean);
return data;
}