配置:去除stable服env的特殊处理

This commit is contained in:
luying
2021-12-08 14:59:01 +08:00
parent b51a2839da
commit 02c2096704
14 changed files with 66 additions and 75 deletions

View File

@@ -5,9 +5,6 @@ function main (){
return console.log('参数请填写环境变量'); return console.log('参数请填写环境变量');
} }
let env = args[0]; let env = args[0];
if(args[0] == 'stable') {
env = 'production';
}
let configObject = { let configObject = {
env: env env: env

View File

@@ -71,6 +71,20 @@ export class GmHandler {
return resResult(STATUS.SUCCESS,); 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) { async stopMaintenance(msg: { id: number }, session: BackendSession) {
const { id } = msg; const { id } = msg;

View File

@@ -261,22 +261,21 @@ export function _getActivities() {
export async function checkActivityEditable(activities: ActivityModelType[]) { export async function checkActivityEditable(activities: ActivityModelType[]) {
let now = new Date(); let now = new Date();
if(pinus.app.get('env') == 'production') { for(let activity of activities) {
for(let activity of activities) { 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) {
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) { // 签到活动的不显示期内也可以编辑
// 签到活动的不显示期内也可以编辑 let signInObj = new SignInData(activity, 0);
let signInObj = new SignInData(activity, 0); if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
return false;
}
} else {
return false; return false;
} }
} else {
return false;
} }
} }
} }
return true; return true;
} }

View File

@@ -29,23 +29,21 @@ import { GMMailModel } from '../db/GMMail';
import { Maintenance, ServerlistModel, ServerlistType, ServerlistUpdate } from '../db/Serverlist'; import { Maintenance, ServerlistModel, ServerlistType, ServerlistUpdate } from '../db/Serverlist';
import { getWorldChannelSid } from './chatService'; import { getWorldChannelSid } from './chatService';
import { createMarqueeMsg, pushMarqueeMsg } from './sysChatService'; import { createMarqueeMsg, pushMarqueeMsg } from './sysChatService';
import { RegionModel, RegionType } from '../db/Region';
const PER_SECOND = 1 * 1000; const PER_SECOND = 1 * 1000;
const PER_DAY = 24 * 60 * 60; const PER_DAY = 24 * 60 * 60;
const PER_HOUR = 1 * 60 * 60; const PER_HOUR = 1 * 60 * 60;
const PER_MINUTE = 1 * 60; const PER_MINUTE = 1 * 60;
var seasonMakeRewardTimJobId: Job; var seasonMakeRewardTimJobId: Job;
var warJobId: Job;
var seasonRefreshTimeJobId: Job; var seasonRefreshTimeJobId: Job;
let guildWeeklyJobId: Job; let guildWeeklyJobId: Job;
let guildActStartJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除 let guildActStartJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
let guildActSecondsJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除 let guildActSecondsJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
let guildActEndJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除 let guildActEndJobId: Job; // 军团活动开启后每10(or 1)秒循环的定时任务,到结束活动清除
let pvpMakeRewardInterval = null;
let pvpRefreshInterval = null;
/** /**
* 服务器启动即开启定时任务结算时常是23-24点实际结算的时间点是2331分钟 * 初始定时器
*/ */
export async function init() { export async function init() {
@@ -83,6 +81,7 @@ export async function init() {
await initMaintenance(); await initMaintenance();
} }
// —————————————— PVP 及赛季相关 —————————————— //
function getSeasonContinueDay(seasonNum: number) { function getSeasonContinueDay(seasonNum: number) {
const pvpSeasonDuring = PVP.PVP_SEASON_DAYS.split('|').map(cur => { const pvpSeasonDuring = PVP.PVP_SEASON_DAYS.split('|').map(cur => {
let arr = cur.split('&'); let arr = cur.split('&');
@@ -197,7 +196,9 @@ export async function reportOnlineSchedule() {
} }
} }
// —————————————— PVP 及赛季相关 end —————————————— //
// —————————————— 军团活动 —————————————— //
/** /**
* 军团活动每晚8点开启 * 军团活动每晚8点开启
*/ */
@@ -343,6 +344,10 @@ export async function raceActivitySeconds() {
} }
} }
// —————————————— 军团活动 end —————————————— //
// —————————————— 拍卖行 —————————————— //
let startGuildAuctionJobId: Job; let startGuildAuctionJobId: Job;
let startWorldAuctionJobId: Job; let startWorldAuctionJobId: Job;
let stopAuctionJobId: Job; let stopAuctionJobId: Job;
@@ -383,7 +388,9 @@ function clearAuctionSchedule() {
} }
} }
// —————————————— 拍卖行 end —————————————— //
// —————————————— 邮件 —————————————— //
async function sendCircleMail() { async function sendCircleMail() {
let gmmails = await GMMailModel.findCircleMails(pinus.app.get('env')); let gmmails = await GMMailModel.findCircleMails(pinus.app.get('env'));
for(let gmmail of gmmails) { 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} let maintenInfos = new Map<string, { servers: ServerlistType[], maintenance: Maintenance }>(); // batchCode => {servers, maintenance}
export async function initMaintenance(servers?: ServerlistType[]) { export async function initMaintenance(servers?: ServerlistType[]) {
if(!servers) servers = await ServerlistModel.findByEnv(pinus.app.get('env')); 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.guild.guildRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.order.orderRemote.stopServerMainten.broadcast(serverIds); pinus.app.rpc.order.orderRemote.stopServerMainten.broadcast(serverIds);
pinus.app.rpc.role.roleRemote.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 —————————————— //

View File

@@ -5,9 +5,6 @@ function main (){
return console.log('参数请填写环境变量'); return console.log('参数请填写环境变量');
} }
let env = args[0]; let env = args[0];
if(args[0] == 'stable') {
env = 'production';
}
let configObject = { let configObject = {
env: env env: env

View File

@@ -6,7 +6,7 @@ module.exports = {
'redispw': 'zyz_2020' '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', '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', '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', 'redis': 'r-8vb4i2kgl91886fkxd.redis.zhangbei.rds.aliyuncs.com',

View File

@@ -9,6 +9,11 @@ module.exports = {
'host': '127.0.0.1', 'host': '127.0.0.1',
'port': 3005 'port': 3005
}, },
'stable': {
'id': 'master-server-1',
'host': '127.0.0.1',
'port': 3005
},
'alpha': { 'alpha': {
'id': 'master-server-1', 'id': 'master-server-1',
'host': '172.26.145.159', 'host': '172.26.145.159',

View File

@@ -3,8 +3,8 @@ module.exports = {
'type': 'development', 'type': 'development',
'name': '本地服' 'name': '本地服'
}, },
'production': { 'stable': {
'type': 'production', 'type': 'stable',
'name': '正式服' 'name': '正式服'
}, },
'alpha': { 'alpha': {

View File

@@ -50,7 +50,7 @@ module.exports = {
{ 'id': 'order-server-1', 'host': '127.0.0.1', 'port': 6060, "args": " --inspect=9242" }, { 'id': 'order-server-1', 'host': '127.0.0.1', 'port': 6060, "args": " --inspect=9242" },
] ]
}, },
'production': { 'stable': {
'connector': [ 'connector': [
{ 'id': 'connector-server-1', 'port': 4050, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true }, { '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 }, { 'id': 'connector-server-2', 'port': 4051, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true },

View File

@@ -35,20 +35,19 @@ export default class Activity extends Service {
let now = new Date(); let now = new Date();
let activity = await ActivityModel.findActivity(activityId); 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) { if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
// 签到活动的不显示期内也可以编辑 // 签到活动的不显示期内也可以编辑
let signInObj = new SignInData(activity, 0); let signInObj = new SignInData(activity, 0);
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) { 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 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 return 0
} }

View File

@@ -31,7 +31,6 @@ export default class GameController extends Controller {
let serverList = new Array<GroupParam>(); let serverList = new Array<GroupParam>();
let loginServerList = new Array<ServerParamWithRole>(); let loginServerList = new Array<ServerParamWithRole>();
console.log('****', ctx.app.config.realEnv)
let allServers = await ServerlistModel.findByEnv(ctx.app.config.realEnv); let allServers = await ServerlistModel.findByEnv(ctx.app.config.realEnv);
let roles = await RoleModel.findAllByUid(uid, true, true); let roles = await RoleModel.findAllByUid(uid, true, true);
for (let server of allServers) { for (let server of allServers) {

View File

@@ -1,12 +1,14 @@
import { STATUS } from '@consts'; import { STATUS } from '@consts';
import { ServerlistModel } from '@db/Serverlist';
import { nowSeconds } from 'app/pubUtils/timeUtil';
import { checkWhiteList } from 'app/pubUtils/util'; import { checkWhiteList } from 'app/pubUtils/util';
module.exports = () => { module.exports = () => {
return async function checkMainten(ctx, next) { return async function checkMainten(ctx, next) {
const { serverId } = ctx.request.body; const { serverId } = ctx.request.body;
if (serverId) { if (serverId) {
let maintenServers = await ctx.service.game.getServerMainten(); let server = await ServerlistModel.findByServerId(serverId);
if (maintenServers.indexOf(serverId) != -1) { if (server && server.maintenance && server.maintenance.isOpen && server.maintenance.startTime < nowSeconds() && server.maintenance.endTime > nowSeconds()) {
let isWhiteList = await checkWhiteList(ctx.tel, ctx.request.ip); let isWhiteList = await checkWhiteList(ctx.tel, ctx.request.ip);
if (isWhiteList) { if (isWhiteList) {
await next(); await next();

View File

@@ -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);
// }
// }
}

View File

@@ -7,7 +7,6 @@ type AnyFunc<T = any> = (...args: any[]) => T;
type CanExportFunc = AnyFunc<Promise<any>> | AnyFunc<IterableIterator<any>>; 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; 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 ExportAuth from '../../../app/service/Auth';
import ExportGame from '../../../app/service/Game';
import ExportSdk from '../../../app/service/Sdk'; import ExportSdk from '../../../app/service/Sdk';
import ExportTest from '../../../app/service/Test'; import ExportTest from '../../../app/service/Test';
import ExportTurboCore from '../../../app/service/TurboCore'; import ExportTurboCore from '../../../app/service/TurboCore';
@@ -17,7 +16,6 @@ import ExportUtils from '../../../app/service/Utils';
declare module 'egg' { declare module 'egg' {
interface IService { interface IService {
auth: AutoInstanceType<typeof ExportAuth>; auth: AutoInstanceType<typeof ExportAuth>;
game: AutoInstanceType<typeof ExportGame>;
sdk: AutoInstanceType<typeof ExportSdk>; sdk: AutoInstanceType<typeof ExportSdk>;
test: AutoInstanceType<typeof ExportTest>; test: AutoInstanceType<typeof ExportTest>;
turboCore: AutoInstanceType<typeof ExportTurboCore>; turboCore: AutoInstanceType<typeof ExportTurboCore>;