服务器:修改服务器列表

This commit is contained in:
luying
2021-06-11 10:09:35 +08:00
parent f1fa6ae354
commit 51efc2f0dc
5 changed files with 34 additions and 40 deletions

View File

@@ -29,13 +29,9 @@ export default class Game extends Service {
/**
* 获取正式服,测试服,开发服等环境
*/
public async getServerListByEnv() {
const { ctx, app } = this;
const envlist = await GameModel.getServerEnvList();
let cur = envlist.find(cur => cur.env == app.config.env);
if(!cur) return ctx.service.utils.resResult(STATUS.SUCCESS, { list: [] });
const list = await ServerlistModel.findByServerType(cur.serverType);
public async getServerListByEnv(serverType?: string) {
const { ctx } = this;
const list = await ServerlistModel.findByServerType(serverType);
return ctx.service.utils.resResult(STATUS.SUCCESS, {
list

View File

@@ -17,11 +17,7 @@ export default class Serverlist extends BaseModel {
id: number; // 小区id 自增
@prop({ required: true })
serverId: string; // 显示id不同serverType下id一定不同但是serverId可能相同
public get serverStr() {
return `S${this.serverId}`;
}
serverId: number; // 相同serverType下的id不同serverType下id一定不同但是serverId可能相同
@prop({ required: true })
name: string; // 小区区名
@@ -87,8 +83,12 @@ export default class Serverlist extends BaseModel {
return server;
}
public static async findByServerType(serverType: string) {
let server: ServerlistType[] = await ServerlistModel.find({ serverType }).lean({ getters: true, virtuals: true });
public static async findByServerType(serverType?: string) {
let condition = {};
if(serverType) {
condition['serverType'] = serverType;
}
let server: ServerlistType[] = await ServerlistModel.find(condition).sort({ id: -1 }).lean({ getters: true, virtuals: true });
return server;
}

View File

@@ -1,9 +1,10 @@
import { ServerInfo } from '../../db/Game';
import { RoleType } from '../../db/Role';
import { getSeconds } from '../../pubUtils/timeUtil';
import { ServerlistType } from '@db/Serverlist';
export class ServerParam {
id: number; // 区号
serverId: number; // 显示的区号
serverStr: string; // 显示的区号 S1
name: string; // 区名
host: string; // pinus地址
@@ -12,9 +13,10 @@ export class ServerParam {
openTime: number; // 开服时间
serverType: string; // 分区类型 官服 测试服 开发服
constructor(server: ServerInfo) {
constructor(server: ServerlistType) {
this.id = server.id;
this.serverStr = `S${this.id}`;
this.serverId = server.serverId;
this.serverStr = `S${server.serverId}`;
this.name = server.name;
this.host = server.host;
this.port = server.port;
@@ -30,16 +32,18 @@ export class GroupParam {
groupStr: string; // 大区内小区编号 S1-S10
servers: ServerParam[]; // 区
constructor(server: ServerInfo) {
constructor(server: ServerlistType) {
this.groupId = server.groupId;
this.groupName = server.groupName;
this.groupStr = `S${server.id}-S${server.id + 9}`;
this.groupStr = `S${server.serverId}-S${server.serverId + 9}`;
this.servers = new Array<ServerParam>();
}
public pushServer(server: ServerInfo) {
public pushServer(server: ServerlistType) {
let srv = new ServerParam(server);
this.servers.push(srv);
let min = this.servers.reduce((pre, cur) => pre < cur? pre: cur);
this.groupStr = `${min.serverId}-${min.serverId + 9}`
}
}
@@ -55,7 +59,7 @@ export class ServerParamWithRole extends ServerParam {
lv: number; // 等级
updatedAt: Date;
constructor(role: RoleType, server: ServerInfo) {
constructor(role: RoleType, server: ServerlistType) {
super(server);
this.groupId = server.groupId;
this.groupName = server.groupName;

View File

@@ -5,6 +5,7 @@ import { RoleModel } from '@db/Role';
import { NoticeModel } from '@db/Notice';
import { ServerParamWithRole, GroupParam } from '../domain/gameField/serverlist';
import { reloadResources } from 'app/pubUtils/data';
import { ServerlistModel } from '@db/Serverlist';
export default class GameController extends Controller {
@@ -15,27 +16,20 @@ export default class GameController extends Controller {
let serverList = new Array<GroupParam>();
let loginServerList = new Array<ServerParamWithRole>();
let allServers = await GameModel.getServerList();
let allServers = await ServerlistModel.findByServerType(auth == 1? null: serverType);
let roles = await RoleModel.findAllByUid(uid, true, true);
allServers.sort((a, b) => {
return b.id - a.id;
});
for(let server of allServers) {
if(auth === 1 || (!auth && server.serverType == serverType)) {
server['serverStr'] = `S${server.id}`;
let curGroup = serverList.find(cur => cur.groupId == server.groupId);
if(!curGroup) {
curGroup = new GroupParam(server);
serverList.push(curGroup);
}
curGroup.pushServer(server);
let curGroup = serverList.find(cur => cur.groupId == server.groupId);
if(!curGroup) {
curGroup = new GroupParam(server);
serverList.push(curGroup);
}
curGroup.pushServer(server);
let role = roles.find(role => role.serverId == server.id);
if(!!role) {
let curLoginInfo = new ServerParamWithRole(role, server);
loginServerList.push(curLoginInfo);
}
let role = roles.find(role => role.serverId == server.id);
if(!!role) {
let curLoginInfo = new ServerParamWithRole(role, server);
loginServerList.push(curLoginInfo);
}
}

View File

@@ -15,7 +15,7 @@ module.exports = () => {
return;
}
ctx.uid = user.uid;
ctx.serverType = user.serverType;
ctx.serverType = ctx.request.body.serverType||user.serverType;
ctx.auth = user.auth;
ctx.userCode = user.userCode;
ctx.pkgName = user.pkgName;