系统:停服维护逻辑
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, mongoose, Ref } from '@typegoose/typegoose';
|
||||
import Marquee from './Marquee';
|
||||
import Notice from './Notice';
|
||||
import GMMail from './GMMail';
|
||||
|
||||
/**
|
||||
* 开服策略
|
||||
*/
|
||||
@index({ id: 1 })
|
||||
|
||||
export default class Maintenance extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
code: string; // 策略唯一标志
|
||||
|
||||
@prop({ required: true, type: Number })
|
||||
serverIds: number[]; // 服务器类型
|
||||
|
||||
@prop({ required: true })
|
||||
isOpen: boolean; // 维护是否使用
|
||||
|
||||
@prop({ required: true })
|
||||
startTime: Date; // 维护开始时间
|
||||
|
||||
@prop({ ref: 'Marquee', type: mongoose.Schema.Types.ObjectId })
|
||||
marquee: Ref<Marquee>; // 跑马灯,连接到marquee表
|
||||
|
||||
@prop({ ref: 'Notice', type: mongoose.Schema.Types.ObjectId })
|
||||
notice: Ref<Notice>; // 维护公告
|
||||
|
||||
@prop({ ref: 'Notice', type: mongoose.Schema.Types.ObjectId })
|
||||
mail: Ref<GMMail>; // 维护结束邮件
|
||||
|
||||
|
||||
public static async findOpenMaintenance() {
|
||||
const rec: MaintenanceType = await MaintenanceModel.findOne({ isOpen: true }, { _id: 0 }).populate('marquee').populate('notice').lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async findByCode(code: string) {
|
||||
const rec: MaintenanceType = await MaintenanceModel.findOne({ code }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
export const MaintenanceModel = getModelForClass(Maintenance);
|
||||
|
||||
export interface MaintenanceType extends Pick<DocumentType<Maintenance>, keyof Maintenance> { }
|
||||
export type MaintenanceTypeParam = Partial<MaintenanceType>; // 将所有字段变成可选项
|
||||
Reference in New Issue
Block a user