配置:去除stable服env的特殊处理
This commit is contained in:
@@ -5,9 +5,6 @@ function main (){
|
||||
return console.log('参数请填写环境变量');
|
||||
}
|
||||
let env = args[0];
|
||||
if(args[0] == 'stable') {
|
||||
env = 'production';
|
||||
}
|
||||
|
||||
let configObject = {
|
||||
env: env
|
||||
|
||||
@@ -71,6 +71,20 @@ export class GmHandler {
|
||||
return resResult(STATUS.SUCCESS,);
|
||||
}
|
||||
|
||||
// 大区一起维护
|
||||
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);
|
||||
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);
|
||||
|
||||
return resResult(STATUS.SUCCESS,);
|
||||
}
|
||||
|
||||
// 提前结束维护
|
||||
async stopMaintenance(msg: { id: number }, session: BackendSession) {
|
||||
const { id } = msg;
|
||||
|
||||
@@ -261,22 +261,21 @@ export function _getActivities() {
|
||||
export async function checkActivityEditable(activities: ActivityModelType[]) {
|
||||
let now = new Date();
|
||||
|
||||
if(pinus.app.get('env') == 'production') {
|
||||
for(let activity of activities) {
|
||||
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
|
||||
|
||||
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
|
||||
// 签到活动的不显示期内也可以编辑
|
||||
let signInObj = new SignInData(activity, 0);
|
||||
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
for(let activity of activities) {
|
||||
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
|
||||
|
||||
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
|
||||
// 签到活动的不显示期内也可以编辑
|
||||
let signInObj = new SignInData(activity, 0);
|
||||
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,23 +29,21 @@ import { GMMailModel } from '../db/GMMail';
|
||||
import { Maintenance, ServerlistModel, ServerlistType, ServerlistUpdate } from '../db/Serverlist';
|
||||
import { getWorldChannelSid } from './chatService';
|
||||
import { createMarqueeMsg, pushMarqueeMsg } from './sysChatService';
|
||||
import { RegionModel, RegionType } from '../db/Region';
|
||||
|
||||
const PER_SECOND = 1 * 1000;
|
||||
const PER_DAY = 24 * 60 * 60;
|
||||
const PER_HOUR = 1 * 60 * 60;
|
||||
const PER_MINUTE = 1 * 60;
|
||||
var seasonMakeRewardTimJobId: Job;
|
||||
var warJobId: Job;
|
||||
var seasonRefreshTimeJobId: Job;
|
||||
let guildWeeklyJobId: Job;
|
||||
let guildActStartJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
|
||||
let guildActSecondsJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
|
||||
let guildActEndJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
|
||||
let pvpMakeRewardInterval = null;
|
||||
let pvpRefreshInterval = null;
|
||||
|
||||
/**
|
||||
* 服务器启动即开启定时任务,结算时常是23-24点,实际结算的时间点是23:31分钟
|
||||
* 初始定时器
|
||||
*/
|
||||
export async function init() {
|
||||
|
||||
@@ -83,6 +81,7 @@ export async function init() {
|
||||
await initMaintenance();
|
||||
}
|
||||
|
||||
// —————————————— PVP 及赛季相关 —————————————— //
|
||||
function getSeasonContinueDay(seasonNum: number) {
|
||||
const pvpSeasonDuring = PVP.PVP_SEASON_DAYS.split('|').map(cur => {
|
||||
let arr = cur.split('&');
|
||||
@@ -197,7 +196,9 @@ export async function reportOnlineSchedule() {
|
||||
}
|
||||
}
|
||||
|
||||
// —————————————— PVP 及赛季相关 end —————————————— //
|
||||
|
||||
// —————————————— 军团活动 —————————————— //
|
||||
/**
|
||||
* 军团活动,每晚8点开启
|
||||
*/
|
||||
@@ -343,6 +344,10 @@ export async function raceActivitySeconds() {
|
||||
}
|
||||
}
|
||||
|
||||
// —————————————— 军团活动 end —————————————— //
|
||||
|
||||
// —————————————— 拍卖行 —————————————— //
|
||||
|
||||
let startGuildAuctionJobId: Job;
|
||||
let startWorldAuctionJobId: Job;
|
||||
let stopAuctionJobId: Job;
|
||||
@@ -383,7 +388,9 @@ function clearAuctionSchedule() {
|
||||
}
|
||||
}
|
||||
|
||||
// —————————————— 拍卖行 end —————————————— //
|
||||
|
||||
// —————————————— 邮件 —————————————— //
|
||||
async function sendCircleMail() {
|
||||
let gmmails = await GMMailModel.findCircleMails(pinus.app.get('env'));
|
||||
for(let gmmail of gmmails) {
|
||||
@@ -401,9 +408,9 @@ async function sendCircleMail() {
|
||||
}
|
||||
}
|
||||
|
||||
// —————————————— 邮件 end —————————————— //
|
||||
|
||||
/*** 维护 */
|
||||
|
||||
// —————————————— 维护 —————————————— //
|
||||
let maintenInfos = new Map<string, { servers: ServerlistType[], maintenance: Maintenance }>(); // batchCode => {servers, maintenance}
|
||||
export async function initMaintenance(servers?: ServerlistType[]) {
|
||||
if(!servers) servers = await ServerlistModel.findByEnv(pinus.app.get('env'));
|
||||
@@ -521,4 +528,11 @@ export async function stopMaintenance(batchCode: string, serverIds: number[]) {
|
||||
pinus.app.rpc.guild.guildRemote.stopServerMainten.broadcast(serverIds);
|
||||
pinus.app.rpc.order.orderRemote.stopServerMainten.broadcast(serverIds);
|
||||
pinus.app.rpc.role.roleRemote.stopServerMainten.broadcast(serverIds);
|
||||
}
|
||||
}
|
||||
|
||||
// —————————————— 维护 end —————————————— //
|
||||
// —————————————— 自动开服 —————————————— //
|
||||
async function initAutoCreateServer(region?: RegionType) {
|
||||
if(!region) region = await RegionModel.findRegionByEnv(pinus.app.get('env'));
|
||||
}
|
||||
// —————————————— 自动开服 end —————————————— //
|
||||
@@ -5,9 +5,6 @@ function main (){
|
||||
return console.log('参数请填写环境变量');
|
||||
}
|
||||
let env = args[0];
|
||||
if(args[0] == 'stable') {
|
||||
env = 'production';
|
||||
}
|
||||
|
||||
let configObject = {
|
||||
env: env
|
||||
|
||||
@@ -6,7 +6,7 @@ module.exports = {
|
||||
'redispw': 'zyz_2020'
|
||||
},
|
||||
|
||||
'production': {
|
||||
'stable': {
|
||||
'mongo': 'mongodb://dbop:zyzdbopbantu@dds-8vbdb47c6fb58a541.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdb47c6fb58a542.mongodb.zhangbei.rds.aliyuncs.com:3717/zyz?replicaSet=mgset-500808098',
|
||||
'gmmongo': 'mongodb://dbop:zyzGm2021@dds-8vb9964bb4cc7f241.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vb9964bb4cc7f242.mongodb.zhangbei.rds.aliyuncs.com:3717/zyzgm?replicaSet=mgset-507933150',
|
||||
'redis': 'r-8vb4i2kgl91886fkxd.redis.zhangbei.rds.aliyuncs.com',
|
||||
|
||||
@@ -9,6 +9,11 @@ module.exports = {
|
||||
'host': '127.0.0.1',
|
||||
'port': 3005
|
||||
},
|
||||
'stable': {
|
||||
'id': 'master-server-1',
|
||||
'host': '127.0.0.1',
|
||||
'port': 3005
|
||||
},
|
||||
'alpha': {
|
||||
'id': 'master-server-1',
|
||||
'host': '172.26.145.159',
|
||||
|
||||
@@ -3,8 +3,8 @@ module.exports = {
|
||||
'type': 'development',
|
||||
'name': '本地服'
|
||||
},
|
||||
'production': {
|
||||
'type': 'production',
|
||||
'stable': {
|
||||
'type': 'stable',
|
||||
'name': '正式服'
|
||||
},
|
||||
'alpha': {
|
||||
|
||||
@@ -50,7 +50,7 @@ module.exports = {
|
||||
{ 'id': 'order-server-1', 'host': '127.0.0.1', 'port': 6060, "args": " --inspect=9242" },
|
||||
]
|
||||
},
|
||||
'production': {
|
||||
'stable': {
|
||||
'connector': [
|
||||
{ 'id': 'connector-server-1', 'port': 4050, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true },
|
||||
{ 'id': 'connector-server-2', 'port': 4051, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true },
|
||||
|
||||
@@ -35,20 +35,19 @@ export default class Activity extends Service {
|
||||
let now = new Date();
|
||||
let activity = await ActivityModel.findActivity(activityId);
|
||||
|
||||
if(this.app.config.env == 'production') {
|
||||
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
|
||||
if(!activity || (activity.beginTime < now && activity.endTime > now)) {
|
||||
|
||||
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
|
||||
// 签到活动的不显示期内也可以编辑
|
||||
let signInObj = new SignInData(activity, 0);
|
||||
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
|
||||
return this.ctx.service.utils.resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
|
||||
}
|
||||
} else {
|
||||
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
|
||||
// 签到活动的不显示期内也可以编辑
|
||||
let signInObj = new SignInData(activity, 0);
|
||||
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
|
||||
return this.ctx.service.utils.resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
|
||||
}
|
||||
} else {
|
||||
return this.ctx.service.utils.resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
|
||||
}
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ export default class GameController extends Controller {
|
||||
let serverList = new Array<GroupParam>();
|
||||
let loginServerList = new Array<ServerParamWithRole>();
|
||||
|
||||
console.log('****', ctx.app.config.realEnv)
|
||||
let allServers = await ServerlistModel.findByEnv(ctx.app.config.realEnv);
|
||||
let roles = await RoleModel.findAllByUid(uid, true, true);
|
||||
for (let server of allServers) {
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import { STATUS } from '@consts';
|
||||
import { ServerlistModel } from '@db/Serverlist';
|
||||
import { nowSeconds } from 'app/pubUtils/timeUtil';
|
||||
import { checkWhiteList } from 'app/pubUtils/util';
|
||||
|
||||
module.exports = () => {
|
||||
return async function checkMainten(ctx, next) {
|
||||
const { serverId } = ctx.request.body;
|
||||
if (serverId) {
|
||||
let maintenServers = await ctx.service.game.getServerMainten();
|
||||
if (maintenServers.indexOf(serverId) != -1) {
|
||||
let server = await ServerlistModel.findByServerId(serverId);
|
||||
if (server && server.maintenance && server.maintenance.isOpen && server.maintenance.startTime < nowSeconds() && server.maintenance.endTime > nowSeconds()) {
|
||||
let isWhiteList = await checkWhiteList(ctx.tel, ctx.request.ip);
|
||||
if (isWhiteList) {
|
||||
await next();
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
|
||||
import { Service } from 'egg';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
*/
|
||||
export default class Game extends Service {
|
||||
|
||||
// public setServerMainten(maintenServers: number[]) {
|
||||
// return this.app['maintenServers'] = maintenServers;
|
||||
// }
|
||||
|
||||
public async getServerMainten() {
|
||||
// // return this.app['maintenServers']||[];
|
||||
|
||||
// const maintenance = await MaintenanceModel.findOpenMaintenance();
|
||||
// if(maintenance) {
|
||||
// return maintenance.serverIds;
|
||||
// } else {
|
||||
// return [];
|
||||
// }
|
||||
return []
|
||||
}
|
||||
|
||||
// public async readDbMaintenance() {
|
||||
// const maintenance = await MaintenanceModel.findOpenMaintenance();
|
||||
// if(maintenance) {
|
||||
// this.setServerMainten(maintenance.serverIds);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
2
web-server/typings/app/service/index.d.ts
vendored
2
web-server/typings/app/service/index.d.ts
vendored
@@ -7,7 +7,6 @@ type AnyFunc<T = any> = (...args: any[]) => T;
|
||||
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;
|
||||
import ExportAuth from '../../../app/service/Auth';
|
||||
import ExportGame from '../../../app/service/Game';
|
||||
import ExportSdk from '../../../app/service/Sdk';
|
||||
import ExportTest from '../../../app/service/Test';
|
||||
import ExportTurboCore from '../../../app/service/TurboCore';
|
||||
@@ -17,7 +16,6 @@ import ExportUtils from '../../../app/service/Utils';
|
||||
declare module 'egg' {
|
||||
interface IService {
|
||||
auth: AutoInstanceType<typeof ExportAuth>;
|
||||
game: AutoInstanceType<typeof ExportGame>;
|
||||
sdk: AutoInstanceType<typeof ExportSdk>;
|
||||
test: AutoInstanceType<typeof ExportTest>;
|
||||
turboCore: AutoInstanceType<typeof ExportTurboCore>;
|
||||
|
||||
Reference in New Issue
Block a user