服务器:修复白名单bug
This commit is contained in:
@@ -64,6 +64,7 @@ export class GmHandler {
|
||||
async startMaintenance(msg: { id: number, startTime: number, endTime: number, hasNotify: boolean }, session: BackendSession) {
|
||||
const { id, startTime, endTime, hasNotify } = msg;
|
||||
if(!id || !isNumber(startTime) || !isNumber(endTime)) return resResult(STATUS.WRONG_PARMS);
|
||||
if(endTime < nowSeconds()) return resResult(STATUS.WRONG_PARMS, '结束时间不能比现在早');
|
||||
const uid = session.get('uid');
|
||||
let newMaintenance: Maintenance = { batchCode: genCode(10), startTime, endTime, hasNotify, isOpen: true }
|
||||
let server = await ServerlistModel.updateByServerId(id, { maintenance: newMaintenance });
|
||||
@@ -76,10 +77,10 @@ export class GmHandler {
|
||||
async startRegionMaintenance(msg: { startTime: number, endTime: number, hasNotify: boolean }, session: BackendSession) {
|
||||
const { startTime, endTime, hasNotify } = msg;
|
||||
if(!isNumber(startTime) || !isNumber(endTime)) return resResult(STATUS.WRONG_PARMS);
|
||||
if(endTime < nowSeconds()) return resResult(STATUS.WRONG_PARMS, '结束时间不能比现在早');
|
||||
const uid = session.get('uid');
|
||||
let newMaintenance: Maintenance = { batchCode: genCode(10), startTime, endTime, hasNotify, isOpen: true }
|
||||
let servers = await ServerlistModel.findByEnv(this.app.get('env'));
|
||||
console.log('*********servers', servers)
|
||||
await ServerlistModel.updateByServerIds(servers.map(server => server.id), { maintenance: newMaintenance });
|
||||
await pinus.app.rpc.systimer.systimerRemote.initMaintenance.broadcast(servers);
|
||||
|
||||
|
||||
@@ -62,26 +62,33 @@ async function startMarquee(marquee: MarqueeType, startJob?: Job) {
|
||||
startJob = undefined;
|
||||
}
|
||||
} else {
|
||||
await pushMarqueeMsg(msgDatas);
|
||||
console.log('***', marquee.interval)
|
||||
let secondsJob = scheduleJob(`setSeconds${marquee.code}`, `*/${marquee.interval} * * * * *`, async () => {
|
||||
console.log(`*****setSeconds${marquee.code}****`)
|
||||
if(marquee.endTime > nowSeconds()) {
|
||||
await pushMarqueeMsg(msgDatas);
|
||||
});
|
||||
let endJob = scheduleJob(`end${marquee.code}`, marquee.endTime * 1000, async () => {
|
||||
console.log('***', marquee.interval)
|
||||
let secondsJob = scheduleJob(`setSeconds${marquee.code}`, `*/${marquee.interval} * * * * *`, async () => {
|
||||
console.log(`*****setSeconds${marquee.code}****`)
|
||||
await pushMarqueeMsg(msgDatas);
|
||||
});
|
||||
let endJob = scheduleJob(`end${marquee.code}`, marquee.endTime * 1000, async () => {
|
||||
if(startJob) {
|
||||
startJob.cancel();
|
||||
startJob = undefined;
|
||||
}
|
||||
if(secondsJob) {
|
||||
secondsJob.cancel();
|
||||
secondsJob = undefined;
|
||||
}
|
||||
if(endJob) {
|
||||
endJob.cancel();
|
||||
endJob = undefined;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if(startJob) {
|
||||
startJob.cancel();
|
||||
startJob = undefined;
|
||||
}
|
||||
if(secondsJob) {
|
||||
secondsJob.cancel();
|
||||
secondsJob = undefined;
|
||||
}
|
||||
if(endJob) {
|
||||
endJob.cancel();
|
||||
endJob = undefined;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -437,13 +437,17 @@ export async function initMaintenance(servers?: ServerlistType[]) {
|
||||
// 设置维护
|
||||
async function setMaintenance(batchCode: string) {
|
||||
let { maintenance } = maintenInfos.get(batchCode);
|
||||
|
||||
console.log('***** maintenance', maintenance);
|
||||
|
||||
let now = nowSeconds();
|
||||
// 发送消息
|
||||
if(maintenance.hasNotify && now < maintenance.startTime) {
|
||||
if(now > maintenance.startTime - 5 * 60) {
|
||||
maintenanceNotifySchedule(batchCode);
|
||||
} else {
|
||||
scheduleJob(`maintenNotify${batchCode}`, maintenance.startTime - 5 * 60, () => {
|
||||
scheduleJob(`maintenNotify${batchCode}`, (maintenance.startTime - 5 * 60) * 1000, () => {
|
||||
console.log('******* 通知')
|
||||
maintenanceNotifySchedule(batchCode);
|
||||
})
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ export default class Serverlist extends BaseModel {
|
||||
}
|
||||
|
||||
public static async incRoleCnt(serverId: number) {
|
||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ serverId }, { $inc: { playerCnt: 1 } });
|
||||
let server: ServerlistType = await ServerlistModel.findOneAndUpdate({ id: serverId }, { $inc: { playerCnt: 1 } });
|
||||
return server;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,14 +11,14 @@ module.exports = () => {
|
||||
if (server && server.maintenance && server.maintenance.isOpen && server.maintenance.startTime < nowSeconds() && server.maintenance.endTime > nowSeconds()) {
|
||||
let isWhiteList = await checkWhiteList(ctx.app.config.realEnv, ctx.clientIp, ctx.uid, serverId);
|
||||
if (isWhiteList) {
|
||||
await next();
|
||||
return await next();
|
||||
} else {
|
||||
ctx.body = ctx.service.utils.resResult(STATUS.SERVER_MAINTENANCE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
await next();
|
||||
return await next();
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -289,7 +289,6 @@ export default class Auth extends Service {
|
||||
public async checkRole(serverId: number) {
|
||||
const ctx = this.ctx;
|
||||
const { uid } = ctx;
|
||||
|
||||
let canLogin = await this.ctx.service.utils.validateCanLogin();
|
||||
if(!canLogin) return this.ctx.service.utils.resResult(STATUS.ONLINE_USER_MAX);
|
||||
|
||||
|
||||
@@ -65,14 +65,12 @@ export default class Utils extends Service {
|
||||
|
||||
// 检测是否可以登录
|
||||
public async validateCanLogin() {
|
||||
console.log('********* serverConst', gameData.serverConst)
|
||||
if(gameData.serverConst.CLOSE_LOGIN == 1) return false;
|
||||
if(gameData.serverConst.CLOSE_LOGIN_WHEN_ONLINE_MAX) {
|
||||
|
||||
let redisClient: RedisClient = this.ctx.app.context.redisClient;
|
||||
let count = await redisClient.hlenAsync(REDIS_KEY.ONLINE_USERS);
|
||||
|
||||
console.log('********* count', count)
|
||||
if(count >= gameData.serverConst.MAX_ONLINE_USER_COUNT) {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -27,7 +27,8 @@
|
||||
"lylocal": "cross-env EGG_SERVER_ENV=lylocal npm run dev",
|
||||
"alpha": "cross-env EGG_SERVER_ENV=alpha npm run dev",
|
||||
"stable": "cross-env EGG_SERVER_ENV=stable npm run dev",
|
||||
"deve": "cross-env EGG_SERVER_ENV=dev npm run dev"
|
||||
"deve": "cross-env EGG_SERVER_ENV=dev npm run dev",
|
||||
"sq1": "cross-env EGG_SERVER_ENV=sq1 npm run dev"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/underscore": "^1.11.3",
|
||||
|
||||
Reference in New Issue
Block a user