后台:公告
This commit is contained in:
@@ -47,6 +47,7 @@ export const COUNTER = {
|
||||
NOTICE: { name: 'notice', def: 1 },
|
||||
GIFT_CODE: { name: 'giftCode', def: 1 },
|
||||
PVP_SEASON_NUM: { name: 'pvpSeason', def: 1 },
|
||||
REGION: { name: 'region', def: 1 }
|
||||
};
|
||||
|
||||
export const DEFAULT_HEROES = [19, 53,];
|
||||
|
||||
@@ -2,7 +2,6 @@ import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
|
||||
import { COUNTER } from '../consts'
|
||||
import { CounterModel } from './Counter';
|
||||
import moment = require('moment');
|
||||
|
||||
/**
|
||||
* 游戏字段接口
|
||||
@@ -24,15 +23,8 @@ export default class Notice extends BaseModel {
|
||||
|
||||
@prop({ required: true })
|
||||
timeStr: string; // 时间显示
|
||||
@prop({ required: true })
|
||||
startTime: Date; // 活动开始时间
|
||||
@prop({ required: true })
|
||||
endTime: Date; // 活动结束时间
|
||||
public get time() {
|
||||
let startTime = moment(this.startTime).format('YYYY/MM/DD');
|
||||
let endTime = moment(this.endTime).format('YYYY/MM/DD');
|
||||
|
||||
return this.timeStr.replace(/%startTime/g, startTime).replace(/%endTime/g, endTime);
|
||||
return this.timeStr;
|
||||
}
|
||||
|
||||
@prop({ required: true, select: false })
|
||||
@@ -73,7 +65,6 @@ export default class Notice extends BaseModel {
|
||||
|
||||
private static getSearchObj(form: { type?: number, content?: string }) {
|
||||
let searchObj = {};
|
||||
if(form['type']) searchObj['type'] = form.type;
|
||||
if(form['content']) searchObj['content'] = { $regex: new RegExp(form.content.toString(), 'i') };
|
||||
return searchObj
|
||||
}
|
||||
|
||||
60
shared/db/Region.ts
Normal file
60
shared/db/Region.ts
Normal file
@@ -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>; // 将所有字段变成可选项
|
||||
@@ -1,13 +1,11 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
|
||||
import { index, getModelForClass, prop, DocumentType, modelOptions, ReturnModelType, mongoose } from '@typegoose/typegoose';
|
||||
import { GameModel } from './Game';
|
||||
import { CounterModel } from './Counter';
|
||||
import { COUNTER, SERVER_STATUS } from '../consts';
|
||||
import { ServerStategyTypeParam } from './ServerStategy';
|
||||
import { getServerName, getServerGroupName } from '../pubUtils/data';
|
||||
|
||||
// 暂时服务器列表是从game表取的,之后会转移到使用这张表,目前用作查询该服战力中位数
|
||||
|
||||
/**
|
||||
* 游戏字段接口
|
||||
*/
|
||||
@@ -18,6 +16,15 @@ export default class Serverlist extends BaseModel {
|
||||
@prop({ required: true, default: 1 })
|
||||
gameId: number; // 游戏id Game表的id
|
||||
|
||||
@prop({ required: true, default: 1 })
|
||||
regionId: number; // 大区id
|
||||
|
||||
@prop({ required: true })
|
||||
env: string; // 环境变量
|
||||
|
||||
@prop({ required: true })
|
||||
serverType: string;
|
||||
|
||||
@prop({ required: true })
|
||||
id: number; // 小区id 自增
|
||||
|
||||
@@ -28,10 +35,10 @@ export default class Serverlist extends BaseModel {
|
||||
name: string; // 小区区名
|
||||
|
||||
@prop({ required: true })
|
||||
groupId: number; // 大区id
|
||||
groupId: number; // 战区id
|
||||
|
||||
@prop({ required: true })
|
||||
groupName: string; // 大区区名
|
||||
groupName: string; // 战区区名
|
||||
|
||||
@prop({ required: true })
|
||||
host: string; // pinus连接地址
|
||||
@@ -57,9 +64,6 @@ export default class Serverlist extends BaseModel {
|
||||
@prop({ required: true })
|
||||
openTime: Date;
|
||||
|
||||
@prop({ required: true })
|
||||
serverType: string;
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
maxPlayerCnt: number; // 最大玩家人数
|
||||
|
||||
@@ -183,7 +187,12 @@ export default class Serverlist extends BaseModel {
|
||||
|
||||
}
|
||||
|
||||
export const ServerlistModel = getModelForClass(Serverlist);
|
||||
export let ServerlistModel: ReturnModelType<typeof Serverlist, {}>;
|
||||
export function loadServerlistModel(connect: mongoose.Connection) {
|
||||
ServerlistModel = getModelForClass(Serverlist, {
|
||||
existingConnection: connect
|
||||
});
|
||||
}
|
||||
|
||||
export interface ServerlistType extends Pick<DocumentType<Serverlist>, keyof Serverlist> {
|
||||
id: number;
|
||||
|
||||
@@ -4,6 +4,8 @@ import { loadGMGroupModel } from "./GMGroup";
|
||||
import { loadGMRecordModel } from "./GMRecord";
|
||||
import { loadGMUserModel } from './GMUser'
|
||||
import { loadGMUserGroupModel } from "./GMUserGroup";
|
||||
import { loadRegionModel } from "./Region";
|
||||
import { loadServerlistModel } from "./Serverlist";
|
||||
|
||||
export function loadGmDb(connect: mongoose.Connection) {
|
||||
loadApiModel(connect);
|
||||
@@ -11,4 +13,6 @@ export function loadGmDb(connect: mongoose.Connection) {
|
||||
loadGMUserModel(connect);
|
||||
loadGMUserGroupModel(connect);
|
||||
loadGMRecordModel(connect);
|
||||
loadRegionModel(connect);
|
||||
loadServerlistModel(connect);
|
||||
}
|
||||
Reference in New Issue
Block a user