后台:json上传
This commit is contained in:
@@ -4,6 +4,7 @@ import { Controller } from 'egg';
|
||||
import { RoleModel } from '@db/Role';
|
||||
import { NoticeModel } from '@db/Notice';
|
||||
import { ServerParamWithRole, GroupParam } from '../domain/gameField/serverlist';
|
||||
import { reloadResources } from 'app/pubUtils/data';
|
||||
|
||||
export default class GameController extends Controller {
|
||||
|
||||
@@ -86,4 +87,18 @@ export default class GameController extends Controller {
|
||||
}
|
||||
|
||||
|
||||
public async reloadResource() {
|
||||
const { ctx } = this;
|
||||
|
||||
try {
|
||||
|
||||
reloadResources();
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { isOK: true });
|
||||
return;
|
||||
} catch(e) {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.SUCCESS, { isOK: false, err: e.stack });
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import { GMUserModel } from '@db/GMUser';
|
||||
import { GMUserGroupModel } from '@db/GMUserGroup'
|
||||
import { GMGroupModel } from '@db/GMGroup'
|
||||
import { GMRecordModel } from '@db/GMRecord'
|
||||
import { ApiModel } from '@db/Api';
|
||||
import { STATUS } from '@consts';
|
||||
|
||||
module.exports = () => {
|
||||
return async function tokenParser(ctx, next) {
|
||||
|
||||
if (!ctx.request.headers || !ctx.request.headers.token) {
|
||||
console.error('token not found');
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
return;
|
||||
}
|
||||
const user = await GMUserModel.getGmAccountByToken(ctx.request.headers.token);
|
||||
if (!user) {
|
||||
console.error('token invalid');
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.TOKEN_ERR);
|
||||
return;
|
||||
}
|
||||
const url = ctx.request.url;
|
||||
let apiResult = await ApiModel.getApi(url);
|
||||
if(!apiResult) {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.GM_MISS_API);
|
||||
return;
|
||||
}
|
||||
let userGroups = await GMUserGroupModel.getUserGroupByUid(user.uid, 1);
|
||||
let flag = 0;
|
||||
for(let userGroup of userGroups) {
|
||||
let { groupId } = userGroup;
|
||||
let group = await GMGroupModel.getGroupById(groupId);
|
||||
if(group) {
|
||||
if(group.apis.includes(apiResult.apiId)) {
|
||||
flag = 1; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(flag != 1) {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.GM_NO_AUTHORITY_GET);
|
||||
return;
|
||||
}
|
||||
ctx.user = user;
|
||||
await next();
|
||||
if(ctx.request.method == "POST") {
|
||||
await GMRecordModel.createRecord(user?user.uid:0, ctx.request.url, JSON.stringify(ctx.request.body||{}), JSON.stringify(ctx.body||{}));
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -17,4 +17,5 @@ export default (app: Application) => {
|
||||
router.post('/user/authentication', tokenParser, controller.account.authentication);
|
||||
router.post('/game/getserverlist', tokenParser, controller.game.getServerList);
|
||||
router.post('/game/getnotice', tokenParser, controller.game.getnotice);
|
||||
router.post('/web/reloadresource', app.middleware.gmTokenParser(), controller.game.reloadResource);
|
||||
};
|
||||
|
||||
@@ -2,11 +2,13 @@
|
||||
// Do not modify this file!!!!!!!!!
|
||||
|
||||
import 'egg';
|
||||
import ExportGmTokenParser from '../../../app/middleware/gmTokenParser';
|
||||
import ExportParmsDecode from '../../../app/middleware/parmsDecode';
|
||||
import ExportTokenParser from '../../../app/middleware/tokenParser';
|
||||
|
||||
declare module 'egg' {
|
||||
interface IMiddleware {
|
||||
gmTokenParser: typeof ExportGmTokenParser;
|
||||
parmsDecode: typeof ExportParmsDecode;
|
||||
tokenParser: typeof ExportTokenParser;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user