From 9d3923ecccfdea0d75d54be77f3219213eeae922 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Sun, 22 Nov 2020 22:43:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/consts/statusCode.ts | 1 + shared/db/Game.ts | 8 +++++++- web-server/app/controller/game.ts | 13 ++++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index b8bb50993..f820e41f7 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -12,6 +12,7 @@ export const STATUS = { SERVER_NOT_FOUND: { code: 10004, simStr: '未找到服务器列表' }, ROLE_NOT_FOUND: { code: 10005, simStr: '未找到角色' }, DUP_LOGIN: { code: 10006, simStr: '重复登录' }, + NEW_SERVER_ERR: { code: 10007, simStr: '添加新服务器失败' }, // 战斗相关状态 20000 - 29999 // 战斗通用 20000 - 20099 BATTLE_MISS_INFO: { code: 20001, simStr: '缺少关卡信息' }, diff --git a/shared/db/Game.ts b/shared/db/Game.ts index eb7d92fe1..f419327da 100644 --- a/shared/db/Game.ts +++ b/shared/db/Game.ts @@ -43,7 +43,7 @@ export default class Game extends BaseModel { @prop({ required: true }) des: string; - @prop({ required: true }) + @prop({ required: true, type: ServerInfo, default: [] }) serverList: Array; @prop({ required: true }) @@ -72,6 +72,12 @@ export default class Game extends BaseModel { console.log(serverType, serverList); return serverList; } + + public static async newServer(serverId: number, serverType: string, name: string, host: string, port: number, status: number, lean = true) { + let serverInfo: ServerInfo = {id: serverId, name, host, port, status, createTime: new Date(), serverType}; + let game = await GameModel.findOneAndUpdate({}, {$push: {serverList: serverInfo}}, {new: true}).lean(lean); + return game; + } } export const GameModel = getModelForClass(Game); diff --git a/web-server/app/controller/game.ts b/web-server/app/controller/game.ts index 3f706264d..8fc8183b8 100644 --- a/web-server/app/controller/game.ts +++ b/web-server/app/controller/game.ts @@ -1,5 +1,5 @@ import { STATUS } from '@consts/statusCode'; -import { GameModel } from '@db/Game'; +import Game, { GameModel } from '@db/Game'; import { Controller } from 'egg'; export default class GameController extends Controller { @@ -13,4 +13,15 @@ export default class GameController extends Controller { ctx.body = ctx.service.utils.resResult(STATUS.SERVER_NOT_FOUND); } } + + public async newServer() { + const { ctx } = this; + const { serverId, serverType, name, host, port, status } = ctx.request.body; + 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); + } + } }