后台:公告
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import { COUNTER } from './../consts';
|
||||
import { CounterModel } from './Counter';
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, mongoose, ReturnModelType } from '@typegoose/typegoose';
|
||||
|
||||
|
||||
/**
|
||||
* 大区数据
|
||||
*/
|
||||
@index({ id: 1 })
|
||||
|
||||
export default class Region extends BaseModel {
|
||||
@prop({ required: true })
|
||||
id: number; // 大区id
|
||||
|
||||
@prop({ required: true })
|
||||
name: string; // 大区名
|
||||
|
||||
@prop({ required: true })
|
||||
prefix: string; // 区名前缀
|
||||
|
||||
@prop({ required: true })
|
||||
env: string; // 环境变量
|
||||
|
||||
@prop({ required: true })
|
||||
gmLink: string; // 短链接地址
|
||||
|
||||
@prop({ required: true })
|
||||
gameHost: string; // 长链接地址
|
||||
|
||||
@prop({ required: true })
|
||||
gamePort: number; // 长链接地址
|
||||
|
||||
public static async createNewRegion(params: RegionUpdate) {
|
||||
let id = await CounterModel.getNewCounter(COUNTER.REGION);
|
||||
|
||||
const rec: RegionType = await RegionModel.findOneAndUpdate({ id }, { $setOnInsert: params }, { new: true, upsert: true }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async getAllRegion() {
|
||||
const rec: RegionType[] = await RegionModel.find().select('-_id').lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async findRegionById(id: number) {
|
||||
const rec: RegionType = await RegionModel.findOne({ id }).lean();
|
||||
return rec;
|
||||
}
|
||||
}
|
||||
|
||||
export let RegionModel: ReturnModelType<typeof Region, {}>;
|
||||
export function loadRegionModel(connect: mongoose.Connection) {
|
||||
RegionModel = getModelForClass(Region, {
|
||||
existingConnection: connect
|
||||
});
|
||||
}
|
||||
|
||||
export interface RegionType extends Pick<DocumentType<Region>, keyof Region> { };
|
||||
export type RegionUpdate = Partial<RegionType>; // 将所有字段变成可选项
|
||||
Reference in New Issue
Block a user