diff --git a/gm-server/app/controller/game.ts b/gm-server/app/controller/game.ts new file mode 100644 index 000000000..ebc880b38 --- /dev/null +++ b/gm-server/app/controller/game.ts @@ -0,0 +1,10 @@ +import { Controller } from 'egg'; + +export default class GameController extends Controller { + + public async getServerEnv() { + const { ctx } = this; + ctx.body = await ctx.service.game.getServerEnv(); + return + } +} diff --git a/gm-server/app/router.ts b/gm-server/app/router.ts index 0cd05a53c..0240ad883 100644 --- a/gm-server/app/router.ts +++ b/gm-server/app/router.ts @@ -26,20 +26,22 @@ export default (app: Application) => { router.post('/api/users/getuserlist',tokenParser, controller.users.getuserlist); router.post('/api/users/createrole',tokenParser, controller.users.createRole); - router.post('/api/users/addauth', controller.users.addAuth); - router.post('/api/users/fixsms', controller.users.fixSms); + router.post('/api/users/addauth', tokenParser, controller.users.addAuth); + router.post('/api/users/fixsms', tokenParser, controller.users.fixSms); router.post('/api/users/deleterole',tokenParser, controller.users.deleteRole); router.post('/api/users/getrolelist',tokenParser, controller.users.getrolelist); router.post('/api/users/createroledata',tokenParser, controller.users.createRoleData); router.post('/api/users/getpvpdefense',tokenParser, controller.users.getPveDefense); router.post('/api/users/getherolist',tokenParser, controller.users.getHeroList); - router.post('/api/users/deletehero', controller.users.deleteHero); - router.post('/api/users/setherolv', controller.users.setHeroLv); + router.post('/api/users/deletehero', tokenParser, controller.users.deleteHero); + router.post('/api/users/setherolv', tokenParser, controller.users.setHeroLv); router.post('/api/users/saveherotodefense',tokenParser, controller.users.saveHeroToDefense); router.post('/api/users/removeherofromdefense',tokenParser, controller.users.removeHeroFromDefense); - router.post('/api/users/getequiplist', controller.users.getEquipList); - router.post('/api/users/getitemlist', controller.users.getItemList); - router.post('/api/users/deleteequip', controller.users.deleteEquip); - router.post('/api/users/deleteitem', controller.users.deleteItem); - router.post('/api/users/setitemcount', controller.users.setItemCount); + router.post('/api/users/getequiplist', tokenParser, controller.users.getEquipList); + router.post('/api/users/getitemlist', tokenParser, controller.users.getItemList); + router.post('/api/users/deleteequip', tokenParser, controller.users.deleteEquip); + router.post('/api/users/deleteitem', tokenParser, controller.users.deleteItem); + router.post('/api/users/setitemcount', tokenParser, controller.users.setItemCount); + + router.post('/api/game/getserverenv', tokenParser, controller.game.getServerEnv); }; diff --git a/gm-server/app/service/Game.ts b/gm-server/app/service/Game.ts new file mode 100644 index 000000000..2b564362a --- /dev/null +++ b/gm-server/app/service/Game.ts @@ -0,0 +1,22 @@ +import { Service } from 'egg'; +import { STATUS } from '@consts'; +import { GameModel } from '@db/Game'; + +/** + * Test Service + */ +export default class Game extends Service { + + /** + * 后台账号登录 + */ + public async getServerEnv() { + const { ctx, app } = this; + const list = await GameModel.getServerEnvList(); + + return ctx.service.utils.resResult(STATUS.SUCCESS, { + list, + env: app.config.env + }); + } +} diff --git a/gm-server/typings/app/controller/index.d.ts b/gm-server/typings/app/controller/index.d.ts index 49e7c0f74..83371ec61 100644 --- a/gm-server/typings/app/controller/index.d.ts +++ b/gm-server/typings/app/controller/index.d.ts @@ -2,6 +2,7 @@ // Do not modify this file!!!!!!!!! import 'egg'; +import ExportGame from '../../../app/controller/game'; import ExportGmaccount from '../../../app/controller/gmaccount'; import ExportHome from '../../../app/controller/home'; import ExportLogin from '../../../app/controller/login'; @@ -10,6 +11,7 @@ import ExportUsers from '../../../app/controller/users'; declare module 'egg' { interface IController { + game: ExportGame; gmaccount: ExportGmaccount; home: ExportHome; login: ExportLogin; diff --git a/gm-server/typings/app/service/index.d.ts b/gm-server/typings/app/service/index.d.ts index c3223080f..25abb1aba 100644 --- a/gm-server/typings/app/service/index.d.ts +++ b/gm-server/typings/app/service/index.d.ts @@ -6,6 +6,7 @@ type AnyClass = new (...args: any[]) => any; type AnyFunc = (...args: any[]) => T; type CanExportFunc = AnyFunc> | AnyFunc>; type AutoInstanceType : T> = U extends AnyClass ? InstanceType : U; +import ExportGame from '../../../app/service/Game'; import ExportGmUser from '../../../app/service/GmUser'; import ExportTest from '../../../app/service/Test'; import ExportUtils from '../../../app/service/Utils'; @@ -13,6 +14,7 @@ import ExportUsers from '../../../app/service/users'; declare module 'egg' { interface IService { + game: AutoInstanceType; gmUser: AutoInstanceType; test: AutoInstanceType; utils: AutoInstanceType; diff --git a/shared/db/Game.ts b/shared/db/Game.ts index fbfa66d00..d7d9c7566 100644 --- a/shared/db/Game.ts +++ b/shared/db/Game.ts @@ -55,6 +55,26 @@ export class ServerInfo { this.createTime = new Date(); } } + +export class ServerEnv { + @prop({ required: true }) + env: string; // 服务器环境,一台物理机一个 + + @prop({ required: true }) + envName: string; // 环境名 正式服 开发服 测试服 等 + + @prop({ required: true }) + serverType: string; // serverlist表中的serverType + + @prop({ required: true }) + gmHost: string; // 后台地址 + + @prop({ required: true }) + webHost: string; // web服地址 + + @prop({ required: true }) + gameHost: string; // pinus长链接地址 +} /** * 游戏字段接口 @@ -78,6 +98,9 @@ export default class Game extends BaseModel { @prop({ required: true, type: ServerInfo, default: [], _id: false }) serverList: Array; + @prop({ required: true, type: ServerEnv, default: [], _id: false }) + serverEnv: Array; + @prop({ required: true }) iconUrl: string; @@ -111,6 +134,13 @@ export default class Game extends BaseModel { return serverList; } + + public static async getServerEnvList() { + let game: GameType = await GameModel.findOne().lean({ getter: true, virtuals: true }); + let serverList: ServerEnv[] = game ? game.serverEnv : []; + return serverList; + } + public static async newServer(serverId: number, serverType: string, name: string, host: string, port: number, status: number, lean = true) { let serverInfo = new ServerInfo(serverId, name, 1, '逍遥津', host, port, status, serverType); let game: GameType = await GameModel.findOneAndUpdate({}, {$push: {serverList: serverInfo}}, {new: true}).lean(lean);