服务器:修改服务器列表
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user