后台:公告

This commit is contained in:
luying
2021-11-24 20:19:17 +08:00
parent 5395bbc832
commit 8c6c44bcde
13 changed files with 130 additions and 54 deletions

View File

@@ -3,12 +3,6 @@ import { STATUS } from '@consts';
export default class GameController extends Controller {
public async getServerEnv() {
const { ctx } = this;
ctx.body = await ctx.service.game.getServerEnv();
return
}
public async getServerListByEnv() {
const { ctx } = this;
ctx.body = await ctx.service.game.getServerListByEnv();
@@ -23,6 +17,13 @@ export default class GameController extends Controller {
return
}
public async getRegions() {
const { ctx } = this;
ctx.body = await ctx.service.game.getRegions();
return
}
public async getMaintenanceList() {
const { ctx } = this;
const {page, pageSize, sortField, sortOrder, form} = ctx.request.body;

View File

@@ -50,9 +50,9 @@ export default (app: Application) => {
// router.post('/api/users/delgiftCode', controller.users.delGiftCode);
router.get('/api/users/getgiftcodedetails/:id/:filename', controller.users.getGiftCodeDetails);
router.post('/api/game/getserverenv', tokenParser, controller.game.getServerEnv);
router.post('/api/game/getserverlistbyenv', tokenParser, controller.game.getServerListByEnv);
router.post('/api/game/getserverlist', controller.game.getServerList);
router.post('/api/game/getregions', controller.game.getRegions);
router.post('/api/game/getmaintenancelist', controller.game.getMaintenanceList);
router.post('/api/game/updatemaintenance', controller.game.updateMaintenance);

View File

@@ -13,25 +13,13 @@ import { MarqueeModel, MarqueeParam, MarqueeType } from '@db/Marquee';
import { MaintenanceModel, MaintenanceTypeParam } from '@db/Maintenance';
import { GMMailTypeParam, GMMailModel, GMMailType } from '@db/GMMail';
import { AccuseRecModel } from '@db/AccuseRec';
import { RegionModel } from '@db/Region';
/**
* 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
});
}
/**
* 获取正式服,测试服,开发服等环境
*/
@@ -57,6 +45,16 @@ export default class Game extends Service {
});
}
public async getRegions() {
const { ctx } = this;
const list = await RegionModel.getAllRegion();
return ctx.service.utils.resResult(STATUS.SUCCESS, {
list
});
}
public async getMaintenanceList(page: number, pageSize: number, sortField: string, sortOrder: string, form: { isOpen?: boolean } = {}) {
const { ctx } = this;
@@ -69,7 +67,7 @@ export default class Game extends Service {
return {
...cur, startTime: cur.startTime.getTime(),
marquee: marquee?{...marquee, startTime: marquee.startTime.getTime(), endTime: marquee.endTime.getTime()}:null,
notice: notice?{...notice, startTime: notice.startTime.getTime(), endTime: notice.endTime.getTime(), showStartTime: notice.showStartTime.getTime(), showEndTime: notice.showEndTime.getTime()}:null
notice: notice?{...notice, showStartTime: notice.showStartTime.getTime(), showEndTime: notice.showEndTime.getTime()}:null
}
}), total
});
@@ -115,7 +113,7 @@ export default class Game extends Service {
await ServerStategyModel.updateServerStategy(values, ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
@@ -130,7 +128,7 @@ export default class Game extends Service {
await ServerlistModel.newServer({ name, openTime: new Date(openTime), serverType }, stategy, ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
@@ -153,7 +151,7 @@ export default class Game extends Service {
await ServerlistModel.updateByServerId(id, update);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
}
return ctx.service.utils.resResult(STATUS.SUCCESS);
}
@@ -206,21 +204,21 @@ export default class Game extends Service {
})
}
public async getNoticeList(page: number, pageSize: number, sortField: string, sortOrder: string, form: { type?: number, content?: string }) {
public async getNoticeList(page: number, pageSize: number, sortField: string, sortOrder: string, form: { content?: string }) {
const { ctx } = this;
const list = await NoticeModel.findByCondition(page, pageSize, sortField, sortOrder, form);
const total = await NoticeModel.countByCondition( form )
return ctx.service.utils.resResult(STATUS.SUCCESS, {
list: list.map(cur => {
return { ...cur, startTime: cur.startTime.getTime(), endTime: cur.endTime.getTime(), showEndTime: cur.showEndTime.getTime(), showStartTime: cur.showStartTime.getTime()}
let env = this.app.config.env;
if(env == 'local') env = 'development';
return { ...cur, showEndTime: cur.showEndTime.getTime(), showStartTime: cur.showStartTime.getTime(), env}
}), total
});
}
public async updateNotice(id: string|number, params: NoticeTypeParam) {
const { ctx } = this;
if(params.startTime) params.startTime = new Date(params.startTime);
if(params.endTime) params.endTime = new Date(params.endTime);
if(params.showStartTime) params.showStartTime = new Date(params.showStartTime);
if(params.showEndTime) params.showEndTime = new Date(params.showEndTime);
let result = await NoticeModel.updateNotice(id, params);

View File

@@ -72,14 +72,14 @@ export default (appInfo: EggAppInfo) => {
maxFileSize: 1024,
};
config.bigServers = [ // 大区数据
let regions = [ // 大区数据
{ id: 1, env: 'stable', name: "常山少年", domain: 'http://pinus_gm_test.trgame.cn' },
{ id: 2, env: 'alpha', name: "测试服", domain: 'http://zyz_gm.trgame.cn' },
{ id: 3, env: 'dev', name: "开发服", domain: 'http://zyzdev_gm.trgame.cn' }
];
let httpProxy: any = {};
for(let { env, domain } of config.bigServers) {
for(let { env, domain } of regions) {
httpProxy[`/api/${env}`] = {
target: domain,
changeOrigin: true,
@@ -90,7 +90,6 @@ export default (appInfo: EggAppInfo) => {
}
}
}
config.proxy = httpProxy;
// the return config will combines to EggAppConfig
return {