登录:公告读数据库
This commit is contained in:
+29
-10
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user