后台:添加在线人数
This commit is contained in:
@@ -56,6 +56,12 @@ export default class GameController extends Controller {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getOnlineUsersByServer() {
|
||||||
|
const { ctx } = this;
|
||||||
|
ctx.body = await ctx.service.game.getOnlineUsersByServer();
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
public async stopServerRegister() {
|
public async stopServerRegister() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { id } = ctx.request.body;
|
const { id } = ctx.request.body;
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ export default (app: Application) => {
|
|||||||
router.post('/api/game/getregions', tokenParser, controller.game.getRegions);
|
router.post('/api/game/getregions', tokenParser, controller.game.getRegions);
|
||||||
router.post('/api/game/createregion', tokenParser, controller.game.createRegion);
|
router.post('/api/game/createregion', tokenParser, controller.game.createRegion);
|
||||||
router.post('/api/game/getservers', tokenParser, controller.game.getServers);
|
router.post('/api/game/getservers', tokenParser, controller.game.getServers);
|
||||||
|
router.post('/api/game/getOnlineUsersByServer', controller.game.getOnlineUsersByServer);
|
||||||
router.post('/api/game/getregionstategy', tokenParser, controller.game.getRegionStategy);
|
router.post('/api/game/getregionstategy', tokenParser, controller.game.getRegionStategy);
|
||||||
router.post('/api/game/getwhitelist', tokenParser, controller.game.getWhiteList);
|
router.post('/api/game/getwhitelist', tokenParser, controller.game.getWhiteList);
|
||||||
router.post('/api/game/updatewhitelist', tokenParser, controller.game.updateWhiteList);
|
router.post('/api/game/updatewhitelist', tokenParser, controller.game.updateWhiteList);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Service } from 'egg';
|
import { Service } from 'egg';
|
||||||
import { STATUS } from '@consts';
|
import { REDIS_KEY, STATUS } from '@consts';
|
||||||
import { ServerlistModel } from '@db/Serverlist';
|
import { ServerlistModel } from '@db/Serverlist';
|
||||||
import { gameData } from '@pubUtils/data';
|
import { gameData } from '@pubUtils/data';
|
||||||
import { DicHero } from '@pubUtils/dictionary/DicHero';
|
import { DicHero } from '@pubUtils/dictionary/DicHero';
|
||||||
@@ -19,6 +19,7 @@ import { DicServerName } from '@pubUtils/dictionary/DicServerName';
|
|||||||
import { CreateRegionParam } from '@domain/backEndField/params';
|
import { CreateRegionParam } from '@domain/backEndField/params';
|
||||||
import { UserOrderModel } from '@db/UserOrder';
|
import { UserOrderModel } from '@db/UserOrder';
|
||||||
import { SurveyModel } from '@db/Survery';
|
import { SurveyModel } from '@db/Survery';
|
||||||
|
import { RedisClient } from 'redis';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test Service
|
* Test Service
|
||||||
@@ -60,6 +61,31 @@ export default class Game extends Service {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getOnlineUsersByServer() {
|
||||||
|
const { ctx } = this;
|
||||||
|
let redisClient: RedisClient = ctx.app.context.redisClient;
|
||||||
|
let allRoles = await redisClient.hgetallAsync(REDIS_KEY.ONLINE_USERS);
|
||||||
|
let result: { serverId: number, count: number }[] = [];
|
||||||
|
for(let roleId in allRoles) {
|
||||||
|
try{
|
||||||
|
let param = allRoles[roleId].split('|');
|
||||||
|
let [,,,, _serverId] = param;
|
||||||
|
let serverId = parseInt(_serverId);
|
||||||
|
let index = result.findIndex(cur => cur.serverId == serverId);
|
||||||
|
if(index == -1) {
|
||||||
|
result.push({ serverId, count: 1 });
|
||||||
|
} else {
|
||||||
|
result[index].count++;
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||||
|
result
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public async stopServerRegister(id: number) {
|
public async stopServerRegister(id: number) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const server = await ServerlistModel.updateByServerId(id, { stopRegisterTime: nowSeconds() - 1 });
|
const server = await ServerlistModel.updateByServerId(id, { stopRegisterTime: nowSeconds() - 1 });
|
||||||
|
|||||||
Reference in New Issue
Block a user