添加主线关卡和每日关卡

This commit is contained in:
luying
2020-09-29 17:03:01 +08:00
parent e448704dc7
commit 160f32bf9e
18 changed files with 743 additions and 2199 deletions
+43
View File
@@ -0,0 +1,43 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
/**
* 战斗记录接口
*/
@index({ roleId: 1, type: 1 })
export default class DailyRecord extends BaseModel {
@prop({ required: true })
roleId: string; // 角色 id
@prop({ required: true })
type: number; // 每日类型
@prop({ required: true, default: 0 })
count: number; // 挑战次数
@prop({ required: true, default: 0 })
refTime: number; // 刷新时间
public static async getDailyRecordById(roleId: string, type: number, lean = true) {
const result = await DailyRecordModel.findOneAndUpdate({ roleId, type }, {}, {new: true, upsert: true}).select('count refTime').lean(lean);
return result;
}
public static async refreshRecord(roleId: string, type: number, lean = true) {
const dailyRecord = await DailyRecordModel.findOne({ roleId, type }).lean(lean);
let {count = 0, refTime = 0} = dailyRecord||{};
let now = new Date();
let today = now.setHours(0, 0, 0, 0);
if(today > refTime) {
refTime = today;
count = 0;
}
let result = await DailyRecordModel.findOneAndUpdate({roleId, type}, {$set: {refTime, count}}, {new: true, upsert: true});
return result;
}
public static async increseDailyCount(roleId: string, type: number, count: number, lean = true) {
const result = await DailyRecordModel.findOneAndUpdate({ roleId, type }, {$inc: { count } }, {new: true, upsert: true}).lean(lean);
return result;
}
}
export const DailyRecordModel = getModelForClass(DailyRecord);