后台:添加跳转地址功能
This commit is contained in:
10
gm-server/app/controller/game.ts
Normal file
10
gm-server/app/controller/game.ts
Normal file
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -26,20 +26,22 @@ export default (app: Application) => {
|
|||||||
|
|
||||||
router.post('/api/users/getuserlist',tokenParser, controller.users.getuserlist);
|
router.post('/api/users/getuserlist',tokenParser, controller.users.getuserlist);
|
||||||
router.post('/api/users/createrole',tokenParser, controller.users.createRole);
|
router.post('/api/users/createrole',tokenParser, controller.users.createRole);
|
||||||
router.post('/api/users/addauth', controller.users.addAuth);
|
router.post('/api/users/addauth', tokenParser, controller.users.addAuth);
|
||||||
router.post('/api/users/fixsms', controller.users.fixSms);
|
router.post('/api/users/fixsms', tokenParser, controller.users.fixSms);
|
||||||
router.post('/api/users/deleterole',tokenParser, controller.users.deleteRole);
|
router.post('/api/users/deleterole',tokenParser, controller.users.deleteRole);
|
||||||
router.post('/api/users/getrolelist',tokenParser, controller.users.getrolelist);
|
router.post('/api/users/getrolelist',tokenParser, controller.users.getrolelist);
|
||||||
router.post('/api/users/createroledata',tokenParser, controller.users.createRoleData);
|
router.post('/api/users/createroledata',tokenParser, controller.users.createRoleData);
|
||||||
router.post('/api/users/getpvpdefense',tokenParser, controller.users.getPveDefense);
|
router.post('/api/users/getpvpdefense',tokenParser, controller.users.getPveDefense);
|
||||||
router.post('/api/users/getherolist',tokenParser, controller.users.getHeroList);
|
router.post('/api/users/getherolist',tokenParser, controller.users.getHeroList);
|
||||||
router.post('/api/users/deletehero', controller.users.deleteHero);
|
router.post('/api/users/deletehero', tokenParser, controller.users.deleteHero);
|
||||||
router.post('/api/users/setherolv', controller.users.setHeroLv);
|
router.post('/api/users/setherolv', tokenParser, controller.users.setHeroLv);
|
||||||
router.post('/api/users/saveherotodefense',tokenParser, controller.users.saveHeroToDefense);
|
router.post('/api/users/saveherotodefense',tokenParser, controller.users.saveHeroToDefense);
|
||||||
router.post('/api/users/removeherofromdefense',tokenParser, controller.users.removeHeroFromDefense);
|
router.post('/api/users/removeherofromdefense',tokenParser, controller.users.removeHeroFromDefense);
|
||||||
router.post('/api/users/getequiplist', controller.users.getEquipList);
|
router.post('/api/users/getequiplist', tokenParser, controller.users.getEquipList);
|
||||||
router.post('/api/users/getitemlist', controller.users.getItemList);
|
router.post('/api/users/getitemlist', tokenParser, controller.users.getItemList);
|
||||||
router.post('/api/users/deleteequip', controller.users.deleteEquip);
|
router.post('/api/users/deleteequip', tokenParser, controller.users.deleteEquip);
|
||||||
router.post('/api/users/deleteitem', controller.users.deleteItem);
|
router.post('/api/users/deleteitem', tokenParser, controller.users.deleteItem);
|
||||||
router.post('/api/users/setitemcount', controller.users.setItemCount);
|
router.post('/api/users/setitemcount', tokenParser, controller.users.setItemCount);
|
||||||
|
|
||||||
|
router.post('/api/game/getserverenv', tokenParser, controller.game.getServerEnv);
|
||||||
};
|
};
|
||||||
|
|||||||
22
gm-server/app/service/Game.ts
Normal file
22
gm-server/app/service/Game.ts
Normal file
@@ -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
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
2
gm-server/typings/app/controller/index.d.ts
vendored
2
gm-server/typings/app/controller/index.d.ts
vendored
@@ -2,6 +2,7 @@
|
|||||||
// Do not modify this file!!!!!!!!!
|
// Do not modify this file!!!!!!!!!
|
||||||
|
|
||||||
import 'egg';
|
import 'egg';
|
||||||
|
import ExportGame from '../../../app/controller/game';
|
||||||
import ExportGmaccount from '../../../app/controller/gmaccount';
|
import ExportGmaccount from '../../../app/controller/gmaccount';
|
||||||
import ExportHome from '../../../app/controller/home';
|
import ExportHome from '../../../app/controller/home';
|
||||||
import ExportLogin from '../../../app/controller/login';
|
import ExportLogin from '../../../app/controller/login';
|
||||||
@@ -10,6 +11,7 @@ import ExportUsers from '../../../app/controller/users';
|
|||||||
|
|
||||||
declare module 'egg' {
|
declare module 'egg' {
|
||||||
interface IController {
|
interface IController {
|
||||||
|
game: ExportGame;
|
||||||
gmaccount: ExportGmaccount;
|
gmaccount: ExportGmaccount;
|
||||||
home: ExportHome;
|
home: ExportHome;
|
||||||
login: ExportLogin;
|
login: ExportLogin;
|
||||||
|
|||||||
2
gm-server/typings/app/service/index.d.ts
vendored
2
gm-server/typings/app/service/index.d.ts
vendored
@@ -6,6 +6,7 @@ type AnyClass = new (...args: any[]) => any;
|
|||||||
type AnyFunc<T = any> = (...args: any[]) => T;
|
type AnyFunc<T = any> = (...args: any[]) => T;
|
||||||
type CanExportFunc = AnyFunc<Promise<any>> | AnyFunc<IterableIterator<any>>;
|
type CanExportFunc = AnyFunc<Promise<any>> | AnyFunc<IterableIterator<any>>;
|
||||||
type AutoInstanceType<T, U = T extends CanExportFunc ? T : T extends AnyFunc ? ReturnType<T> : T> = U extends AnyClass ? InstanceType<U> : U;
|
type AutoInstanceType<T, U = T extends CanExportFunc ? T : T extends AnyFunc ? ReturnType<T> : T> = U extends AnyClass ? InstanceType<U> : U;
|
||||||
|
import ExportGame from '../../../app/service/Game';
|
||||||
import ExportGmUser from '../../../app/service/GmUser';
|
import ExportGmUser from '../../../app/service/GmUser';
|
||||||
import ExportTest from '../../../app/service/Test';
|
import ExportTest from '../../../app/service/Test';
|
||||||
import ExportUtils from '../../../app/service/Utils';
|
import ExportUtils from '../../../app/service/Utils';
|
||||||
@@ -13,6 +14,7 @@ import ExportUsers from '../../../app/service/users';
|
|||||||
|
|
||||||
declare module 'egg' {
|
declare module 'egg' {
|
||||||
interface IService {
|
interface IService {
|
||||||
|
game: AutoInstanceType<typeof ExportGame>;
|
||||||
gmUser: AutoInstanceType<typeof ExportGmUser>;
|
gmUser: AutoInstanceType<typeof ExportGmUser>;
|
||||||
test: AutoInstanceType<typeof ExportTest>;
|
test: AutoInstanceType<typeof ExportTest>;
|
||||||
utils: AutoInstanceType<typeof ExportUtils>;
|
utils: AutoInstanceType<typeof ExportUtils>;
|
||||||
|
|||||||
@@ -55,6 +55,26 @@ export class ServerInfo {
|
|||||||
this.createTime = new Date();
|
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 })
|
@prop({ required: true, type: ServerInfo, default: [], _id: false })
|
||||||
serverList: Array<ServerInfo>;
|
serverList: Array<ServerInfo>;
|
||||||
|
|
||||||
|
@prop({ required: true, type: ServerEnv, default: [], _id: false })
|
||||||
|
serverEnv: Array<ServerEnv>;
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
iconUrl: string;
|
iconUrl: string;
|
||||||
|
|
||||||
@@ -111,6 +134,13 @@ export default class Game extends BaseModel {
|
|||||||
return serverList;
|
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) {
|
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 serverInfo = new ServerInfo(serverId, name, 1, '逍遥津', host, port, status, serverType);
|
||||||
let game: GameType = await GameModel.findOneAndUpdate({}, {$push: {serverList: serverInfo}}, {new: true}).lean(lean);
|
let game: GameType = await GameModel.findOneAndUpdate({}, {$push: {serverList: serverInfo}}, {new: true}).lean(lean);
|
||||||
|
|||||||
Reference in New Issue
Block a user