服务器:修改服务器列表

This commit is contained in:
luying
2021-06-11 10:10:32 +08:00
parent f1fa6ae354
commit 51efc2f0dc
5 changed files with 34 additions and 40 deletions
+3 -7
View File
@@ -29,13 +29,9 @@ export default class Game extends Service {
/** /**
* 获取正式服,测试服,开发服等环境 * 获取正式服,测试服,开发服等环境
*/ */
public async getServerListByEnv() { public async getServerListByEnv(serverType?: string) {
const { ctx, app } = this; const { ctx } = this;
const envlist = await GameModel.getServerEnvList(); const list = await ServerlistModel.findByServerType(serverType);
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);
return ctx.service.utils.resResult(STATUS.SUCCESS, { return ctx.service.utils.resResult(STATUS.SUCCESS, {
list list
+7 -7
View File
@@ -17,11 +17,7 @@ export default class Serverlist extends BaseModel {
id: number; // 小区id 自增 id: number; // 小区id 自增
@prop({ required: true }) @prop({ required: true })
serverId: string; // 显示id,不同serverType下id一定不同,但是serverId可能相同 serverId: number; // 相同serverType下的id,不同serverType下id一定不同,但是serverId可能相同
public get serverStr() {
return `S${this.serverId}`;
}
@prop({ required: true }) @prop({ required: true })
name: string; // 小区区名 name: string; // 小区区名
@@ -87,8 +83,12 @@ export default class Serverlist extends BaseModel {
return server; return server;
} }
public static async findByServerType(serverType: string) { public static async findByServerType(serverType?: string) {
let server: ServerlistType[] = await ServerlistModel.find({ serverType }).lean({ getters: true, virtuals: true }); let condition = {};
if(serverType) {
condition['serverType'] = serverType;
}
let server: ServerlistType[] = await ServerlistModel.find(condition).sort({ id: -1 }).lean({ getters: true, virtuals: true });
return server; return server;
} }
+11 -7
View File
@@ -1,9 +1,10 @@
import { ServerInfo } from '../../db/Game';
import { RoleType } from '../../db/Role'; import { RoleType } from '../../db/Role';
import { getSeconds } from '../../pubUtils/timeUtil'; import { getSeconds } from '../../pubUtils/timeUtil';
import { ServerlistType } from '@db/Serverlist';
export class ServerParam { export class ServerParam {
id: number; // 区号 id: number; // 区号
serverId: number; // 显示的区号
serverStr: string; // 显示的区号 S1 serverStr: string; // 显示的区号 S1
name: string; // 区名 name: string; // 区名
host: string; // pinus地址 host: string; // pinus地址
@@ -12,9 +13,10 @@ export class ServerParam {
openTime: number; // 开服时间 openTime: number; // 开服时间
serverType: string; // 分区类型 官服 测试服 开发服 serverType: string; // 分区类型 官服 测试服 开发服
constructor(server: ServerInfo) { constructor(server: ServerlistType) {
this.id = server.id; this.id = server.id;
this.serverStr = `S${this.id}`; this.serverId = server.serverId;
this.serverStr = `S${server.serverId}`;
this.name = server.name; this.name = server.name;
this.host = server.host; this.host = server.host;
this.port = server.port; this.port = server.port;
@@ -30,16 +32,18 @@ export class GroupParam {
groupStr: string; // 大区内小区编号 S1-S10 groupStr: string; // 大区内小区编号 S1-S10
servers: ServerParam[]; // 区 servers: ServerParam[]; // 区
constructor(server: ServerInfo) { constructor(server: ServerlistType) {
this.groupId = server.groupId; this.groupId = server.groupId;
this.groupName = server.groupName; 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>(); this.servers = new Array<ServerParam>();
} }
public pushServer(server: ServerInfo) { public pushServer(server: ServerlistType) {
let srv = new ServerParam(server); let srv = new ServerParam(server);
this.servers.push(srv); 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; // 等级 lv: number; // 等级
updatedAt: Date; updatedAt: Date;
constructor(role: RoleType, server: ServerInfo) { constructor(role: RoleType, server: ServerlistType) {
super(server); super(server);
this.groupId = server.groupId; this.groupId = server.groupId;
this.groupName = server.groupName; this.groupName = server.groupName;
+12 -18
View File
@@ -5,6 +5,7 @@ import { RoleModel } from '@db/Role';
import { NoticeModel } from '@db/Notice'; import { NoticeModel } from '@db/Notice';
import { ServerParamWithRole, GroupParam } from '../domain/gameField/serverlist'; import { ServerParamWithRole, GroupParam } from '../domain/gameField/serverlist';
import { reloadResources } from 'app/pubUtils/data'; import { reloadResources } from 'app/pubUtils/data';
import { ServerlistModel } from '@db/Serverlist';
export default class GameController extends Controller { export default class GameController extends Controller {
@@ -15,27 +16,20 @@ export default class GameController extends Controller {
let serverList = new Array<GroupParam>(); let serverList = new Array<GroupParam>();
let loginServerList = new Array<ServerParamWithRole>(); 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); let roles = await RoleModel.findAllByUid(uid, true, true);
allServers.sort((a, b) => {
return b.id - a.id;
});
for(let server of allServers) { for(let server of allServers) {
if(auth === 1 || (!auth && server.serverType == serverType)) { let curGroup = serverList.find(cur => cur.groupId == server.groupId);
server['serverStr'] = `S${server.id}`; if(!curGroup) {
let curGroup = serverList.find(cur => cur.groupId == server.groupId); curGroup = new GroupParam(server);
if(!curGroup) { serverList.push(curGroup);
curGroup = new GroupParam(server); }
serverList.push(curGroup); curGroup.pushServer(server);
}
curGroup.pushServer(server);
let role = roles.find(role => role.serverId == server.id); let role = roles.find(role => role.serverId == server.id);
if(!!role) { if(!!role) {
let curLoginInfo = new ServerParamWithRole(role, server); let curLoginInfo = new ServerParamWithRole(role, server);
loginServerList.push(curLoginInfo); loginServerList.push(curLoginInfo);
}
} }
} }
+1 -1
View File
@@ -15,7 +15,7 @@ module.exports = () => {
return; return;
} }
ctx.uid = user.uid; ctx.uid = user.uid;
ctx.serverType = user.serverType; ctx.serverType = ctx.request.body.serverType||user.serverType;
ctx.auth = user.auth; ctx.auth = user.auth;
ctx.userCode = user.userCode; ctx.userCode = user.userCode;
ctx.pkgName = user.pkgName; ctx.pkgName = user.pkgName;