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