后台:添加跳转地址功能

This commit is contained in:
luying
2021-05-14 13:33:41 +08:00
parent 92f2fcf51a
commit a2d2d83f93
6 changed files with 77 additions and 9 deletions

View 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
}
}

View File

@@ -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);
}; };

View 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
});
}
}

View File

@@ -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;

View File

@@ -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>;

View File

@@ -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);