84 lines
2.7 KiB
TypeScript
84 lines
2.7 KiB
TypeScript
import { STATUS } from '@consts';
|
|
import { GameModel } from '@db/Game';
|
|
import { Controller } from 'egg';
|
|
import { RoleModel } from '@db/Role';
|
|
|
|
export default class GameController extends Controller {
|
|
|
|
public async getServerList() {
|
|
const { ctx } = this;
|
|
let { serverType, auth, uid } = ctx;
|
|
|
|
let serverList = [];
|
|
let loginServerList = [];
|
|
|
|
let allServers = await GameModel.getServerList();
|
|
let roles = await RoleModel.findAllByUid(uid);
|
|
console.log(roles.length)
|
|
|
|
for(let server of allServers) {
|
|
if(auth === 1 || (!auth && server.serverType == serverType)) {
|
|
serverList.push(server);
|
|
let role = roles.find(role => role.serverId == server.id);
|
|
if(!!role) {
|
|
let roleInfo = {
|
|
roleId: role.roleId,
|
|
roleName: role.roleName,
|
|
headHid: role.headHid,
|
|
sHid: role.sHid,
|
|
lv: role.lv
|
|
};
|
|
loginServerList.push({...server, ...roleInfo});
|
|
}
|
|
}
|
|
}
|
|
|
|
if (serverList && serverList.length > 0) {
|
|
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { serverList, loginServerList });
|
|
} else {
|
|
ctx.body = ctx.service.utils.resResult(STATUS.SERVER_NOT_FOUND);
|
|
}
|
|
return
|
|
}
|
|
|
|
public async newServer() {
|
|
const { ctx } = this;
|
|
const { serverId, serverType, name, host, port, status } = ctx.request.body;
|
|
const serverList = await GameModel.getAllServerList();
|
|
for (let { id, host: preHost, port: prePort } of serverList) {
|
|
if (preHost === host && prePort === port && id === serverId) {
|
|
ctx.body = ctx.service.utils.resResult(STATUS.SERVER_EXISTS);
|
|
return;
|
|
}
|
|
}
|
|
const gameInfo = await GameModel.newServer(serverId, serverType, name, host, port, status);
|
|
if (gameInfo) {
|
|
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { gameInfo });
|
|
} else {
|
|
ctx.body = ctx.service.utils.resResult(STATUS.NEW_SERVER_ERR);
|
|
}
|
|
return
|
|
}
|
|
|
|
|
|
public async getnotice() {
|
|
const { ctx } = this;
|
|
let { serverType } = ctx;
|
|
|
|
console.log(serverType);
|
|
let notice = [{
|
|
id: 1,
|
|
title: '粮草先行',
|
|
tag: 1,
|
|
type: 1,
|
|
content: '欢迎来到三国志赵云传',
|
|
startTime: 1584921600,
|
|
endTime: 1585353600
|
|
}]
|
|
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { notice });
|
|
return
|
|
}
|
|
|
|
|
|
}
|