登录:公告读数据库

This commit is contained in:
luying
2021-03-05 17:41:53 +08:00
parent f1e9c1efd6
commit 9b533b54a3
5 changed files with 106 additions and 67 deletions
+29 -10
View File
@@ -1,6 +1,7 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
import { getSeconds } from '../pubUtils/timeUtil';
import { formatTime } from '../pubUtils/timeUtil';
import { TIME_FORMAT } from '../consts'
/**
* 游戏字段接口
@@ -19,22 +20,40 @@ export default class Notice extends BaseModel {
type: number; // 类型 1-公告 2-活动
@prop({ required: true })
content: number; // 公告内容
@prop({ required: true })
time: string; // 活动时间
@prop({ required: true, set: (val: Date) => {return val}, get: (val: Date) => { return getSeconds(val) }})
startTime: Date; // 公告
@prop({ required: true, set: (val: Date) => {return val}, get: (val: Date) => { return getSeconds(val) }})
endTime: Date;
@prop({ required: true })
timeStr: string; // 时间显示
@prop({ required: true })
startTime: Date; // 活动开始时间
@prop({ required: true })
endTime: Date; // 活动结束时间
public get time() {
let startTime = formatTime(this.startTime, TIME_FORMAT.TYPE_SLASH);
let endTime = formatTime(this.endTime, TIME_FORMAT.TYPE_SLASH);
return this.timeStr.replace(/%startTime/g, startTime).replace(/%endTime/g, endTime);
}
@prop({ required: true, select: false })
sort: number;
@prop({ required: true })
@prop({ required: true, select: false })
showStartTime: Date;
@prop({ required: true })
@prop({ required: true, select: false })
showEndTime: Date;
@prop({ required: true, select: false })
serverType: string; // 服务器类型
@prop({ required: true, select: false })
isEnable: boolean;
public static async getAllNotice(serverType: string) {
let curTime = new Date();
let notices: NoticeType[] = await NoticeModel.find({ showStartTime: { $lte: curTime }, showEndTime: { $gte: curTime }, isEnable: true, serverType })
.sort({ sort: -1, createTime: -1 })
.lean({ virtuals: true });
return notices;
}
}
export const NoticeModel = getModelForClass(Notice);