This commit is contained in:
mamengke01
2021-02-06 16:14:43 +08:00
parent 8c6f9066ba
commit 4ff0facdc8
5 changed files with 98 additions and 45 deletions

View File

@@ -82,5 +82,6 @@ export class GmHandler {
let {sendRoles, endTime, content, sendName, gmMailType, sendTime, goods, serverId} = msg; let {sendRoles, endTime, content, sendName, gmMailType, sendTime, goods, serverId} = msg;
let mail = await GMMailModel.addMail({serverId, sendRoles, sendName, endTime, content, gmMailType, sendTime, goods}); let mail = await GMMailModel.addMail({serverId, sendRoles, sendName, endTime, content, gmMailType, sendTime, goods});
setGmMails([mail]); setGmMails([mail]);
this.app.rpc.role.roleRemote.sendGmMailsToRoles.toServer('role-server-1',[mail]);
} }
} }

View File

@@ -1,6 +1,7 @@
import { Application, ChannelService, FrontendSession, RemoterClass } from 'pinus'; import { Application, ChannelService, FrontendSession, RemoterClass } from 'pinus';
import { STATUS } from '../../../consts/statusCode'; import { STATUS } from '../../../consts/statusCode';
import { resResult } from '../../../pubUtils/util'; import { resResult } from '../../../pubUtils/util';
import { sendRolesMails } from '../../../services/mailService';
export default function (app: Application) { export default function (app: Application) {
return new RoleRemote(app); return new RoleRemote(app);
} }
@@ -12,4 +13,9 @@ export class RoleRemote {
this.channelService = app.get('channelService'); this.channelService = app.get('channelService');
} }
private channelService: ChannelService; private channelService: ChannelService;
sendGmMailsToRoles(mails) {
sendRolesMails(mails)
}
} }

View File

@@ -10,6 +10,7 @@ import { ConnectorRemote } from './connector/remote/connectorRemote';
import { SystimerRemote } from './systimer/remote/systimerRemote'; import { SystimerRemote } from './systimer/remote/systimerRemote';
import { GuildRemote } from './chat/remote/guildRemote'; import { GuildRemote } from './chat/remote/guildRemote';
import { GMRemote } from './gm/remote/gmRemote'; import { GMRemote } from './gm/remote/gmRemote';
import { RoleRemote } from './role/remote/roleRemote';
declare global { declare global {
interface UserRpc { interface UserRpc {
chat: { chat: {
@@ -28,6 +29,9 @@ declare global {
}, },
gm: { gm: {
gmRemote: RemoterClass<FrontendSession, GMRemote>; gmRemote: RemoterClass<FrontendSession, GMRemote>;
},
role: {
roleRemote: RemoterClass<FrontendSession, RoleRemote>;
} }
} }
} }

View File

@@ -11,6 +11,7 @@ import { findWhere } from "underscore";
import { MAIL_TYPE, MAIL_TEM_TYPE, GM_MAIL_TYPE, MAIL_STATUS } from "../consts/constModules/mailConst"; import { MAIL_TYPE, MAIL_TEM_TYPE, GM_MAIL_TYPE, MAIL_STATUS } from "../consts/constModules/mailConst";
import { DATA_NAME } from '../consts/dataName'; import { DATA_NAME } from '../consts/dataName';
import { lockData } from './redLockService'; import { lockData } from './redLockService';
import GMMail from "../db/GMMail";
export async function sendMail(operate: number, toRoleId: string, sendName: string = '系统', params: string[] = [], goods: RewardInter[] = [], sendTime: number = nowSeconds()) { export async function sendMail(operate: number, toRoleId: string, sendName: string = '系统', params: string[] = [], goods: RewardInter[] = [], sendTime: number = nowSeconds()) {
let { content, time } = getContent(operate, params); let { content, time } = getContent(operate, params);
if (!content) if (!content)
@@ -76,7 +77,7 @@ export async function refreshMails(roleId: string, sid: string, serverId: number
pushMails.push({ id: mail._id, goods, sendTime, endTime, content, status: MAIL_STATUS.CREATE, mailType: MAIL_TYPE.GROUPMAIL, sendName }); pushMails.push({ id: mail._id, goods, sendTime, endTime, content, status: MAIL_STATUS.CREATE, mailType: MAIL_TYPE.GROUPMAIL, sendName });
} }
} }
} else if (gmMailType == GM_MAIL_TYPE.SERVER) { //游戏服邮件 } else if (gmMailType == GM_MAIL_TYPE.SERVER) { //游戏服邮件
let mail = await MailModel.getMail(roleId, mailId, MAIL_TEM_TYPE.GMTYPE); let mail = await MailModel.getMail(roleId, mailId, MAIL_TEM_TYPE.GMTYPE);
if (!mail) { if (!mail) {
const doc = new MailModel(); const doc = new MailModel();
@@ -110,3 +111,35 @@ export async function getMails(roleId: string, serverId: number) {
let list: mailData[] = await pinus.app.rpc.gm.gmRemote.getMailInfos.toServer('gm-server-1', roleId, serverId, mails, groupMails); let list: mailData[] = await pinus.app.rpc.gm.gmRemote.getMailInfos.toServer('gm-server-1', roleId, serverId, mails, groupMails);
return list; return list;
} }
export async function sendRolesMails(mails) {
let addGroupMails: GroupMailType[] = [];
let pushMessage: pushMail[] = [];
for (let { gmMailType, id: mailId, sendRoles, endTime, content, goods, sendTime, sendName } of mails) {
let uids = [];
if (gmMailType != GM_MAIL_TYPE.GROUPMAIL)
return;
let mail = await GroupMailModel.getMail(mailId, MAIL_TEM_TYPE.GMTYPE);
if (!mail) {
const doc = new GroupMailModel();
const mail = Object.assign(doc.toJSON(), { mailId, mailTemType: MAIL_TEM_TYPE.GMTYPE, sendRoles, sendName });
addGroupMails.push(mail);
}
for (let {roleId} of sendRoles) {
let key = 'login_roleId_' + roleId;
let sid = await getRedis(key);
if (!!sid) {
uids.push({sid, uid: roleId})
}
}
pushMessage.push({route: 'onMailsAdd', data:[{
id: mail._id, goods, sendTime: mail.sendTime, endTime: mail.endTime, content, status: MAIL_STATUS.CREATE, mailType: MAIL_TYPE.SINGLEMAIL, sendName
}], uids});
}
if (!!addGroupMails.length) {
await GroupMailModel.addGroupMails(addGroupMails);
}
pushMessage.forEach( message=> {
pinus.app.channelService.pushMessageByUids('onMailsAdd', resResult(STATUS.SUCCESS, { mails: message.data }), message.uids);
});
}

View File

@@ -3,136 +3,145 @@ module.exports = {
'connector': [ 'connector': [
{ {
'id': 'connector-server-1', 'id': 'connector-server-1',
'host': '127.0.0.1', 'host': '192.168.1.136',
'port': 4050, 'port': 4050,
'clientHost': '127.0.0.1', 'clientHost': '192.168.1.136',
'clientPort': 3050, 'clientPort': 3050,
'frontend': true, 'frontend': true,
'args': '--inspect=10001' 'args': '--inspect=10001'
},
{
'id': 'connector-server-2',
'host': '192.168.1.136',
'port': 4051,
'clientHost': '192.168.1.136',
'clientPort': 3052,
'frontend': true,
'args': '--inspect=10002'
} }
], ],
'chat': [ 'chat': [
{'id': 'chat-server-1', 'host': '127.0.0.1', 'port': 6050, "args": " --inspect=9237"} {'id': 'chat-server-1', 'host': '192.168.1.136', 'port': 6050, "args": " --inspect=9237"}
], ],
'role': [ 'role': [
{'id': 'role-server-1', 'host': '127.0.0.1', 'port': 6053, "args": " --inspect=9229"} {'id': 'role-server-1', 'host': '192.168.1.136', 'port': 6053, "args": " --inspect=9229"}
], ],
'battle': [ 'battle': [
{'id': 'battle-server-1', 'host': '127.0.0.1', 'port': 6054, "args": " --inspect=9238"} {'id': 'battle-server-1', 'host': '192.168.1.136', 'port': 6054, "args": " --inspect=9238"}
], ],
'gm': [ 'gm': [
{'id': 'gm-server-1', 'host': '127.0.0.1', 'port': 6055,"args": " --inspect=9234"} {'id': 'gm-server-1', 'host': '192.168.1.136', 'port': 6055,"args": " --inspect=9234"}
], ],
'gate': [ 'gate': [
{ {
'id': 'gate-server-1', 'id': 'gate-server-1',
'host': '127.0.0.1', 'host': '192.168.1.136',
'clientHost': '127.0.0.1', 'clientHost': '192.168.1.136',
'clientPort': 3014, 'clientPort': 3014,
'frontend': true, 'frontend': true,
"args": " --inspect=9235" "args": " --inspect=9235"
}, },
{ {
'id': 'gate-server-2', 'id': 'gate-server-2',
'host': '127.0.0.1', 'host': '192.168.1.136',
'clientHost': '127.0.0.1', 'clientHost': '192.168.1.136',
'clientPort': 3015, 'clientPort': 3015,
'frontend': true, 'frontend': true,
"args": " --inspect=9236" "args": " --inspect=9236"
} }
], ],
'systimer': [ 'systimer': [
{'id': 'systimer-server-1', 'host': '127.0.0.1', 'port': 6056, "args": " --inspect=9233"} {'id': 'systimer-server-1', 'host': '192.168.1.136', 'port': 6056, "args": " --inspect=9233"}
] ]
}, },
'production': { 'production': {
'connector': [ 'connector': [
{'id': 'connector-server-1', 'port': 4050, 'clientHost': 'pinus_test.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true}, {'id': 'connector-server-1', 'port': 4050, 'clientHost': 'pinus_test.trgame.cn', 'host': '192.168.1.136', 'clientPort': 3050, 'frontend': true},
{'id': 'connector-server-2', 'port': 4051, 'clientHost': 'pinus_test.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true}, {'id': 'connector-server-2', 'port': 4051, 'clientHost': 'pinus_test.trgame.cn', 'host': '192.168.1.136', 'clientPort': 3051, 'frontend': true},
{'id': 'connector-server-3', 'port': 4052, 'clientHost': 'pinus_test.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3052, 'frontend': true} {'id': 'connector-server-3', 'port': 4052, 'clientHost': 'pinus_test.trgame.cn', 'host': '192.168.1.136', 'clientPort': 3052, 'frontend': true}
], ],
'chat': [ 'chat': [
{'id': 'chat-server-1', 'host': '127.0.0.1', 'port': 6050}, {'id': 'chat-server-1', 'host': '127.0.0.1', 'port': 6050},
], ],
'role': [ 'role': [
{'id': 'role-server-1', 'host': '127.0.0.1', 'port': 6053} {'id': 'role-server-1', 'host': '192.168.1.136', 'port': 6053}
], ],
'battle': [ 'battle': [
{'id': 'battle-server-1', 'host': '127.0.0.1', 'port': 6054} {'id': 'battle-server-1', 'host': '192.168.1.136', 'port': 6054}
], ],
'gate': [ 'gate': [
{'id': 'gate-server-1', 'host': '127.0.0.1', 'clientHost': 'pinus_test.trgame.cn', 'clientPort': 3014, 'frontend': true}, {'id': 'gate-server-1', 'host': '192.168.1.136', 'clientHost': 'pinus_test.trgame.cn', 'clientPort': 3014, 'frontend': true},
{ {
'id': 'gate-server-2', 'id': 'gate-server-2',
'host': '127.0.0.1', 'host': '192.168.1.136',
'clientHost': 'pinus_test.trgame.cn', 'clientHost': 'pinus_test.trgame.cn',
'clientPort': 3015, 'clientPort': 3015,
'frontend': true 'frontend': true
} }
], ],
'gm': [ 'gm': [
{'id': 'gm-server-1', 'host': '127.0.0.1', 'port': 6055} {'id': 'gm-server-1', 'host': '192.168.1.136', 'port': 6055}
], ],
'systimer': [ 'systimer': [
{'id': 'systimer-server-1', 'host': '127.0.0.1', 'port': 6056} {'id': 'systimer-server-1', 'host': '192.168.1.136', 'port': 6056}
] ]
}, },
'alpha': { 'alpha': {
'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': '192.168.1.136', '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': '192.168.1.136', 'clientPort': 3051, 'frontend': true},
{'id': 'connector-server-3', 'port': 4052, 'clientHost': 'zyz_web.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3052, 'frontend': true} {'id': 'connector-server-3', 'port': 4052, 'clientHost': 'zyz_web.trgame.cn', 'host': '192.168.1.136', 'clientPort': 3052, 'frontend': true}
], ],
'chat': [ 'chat': [
{'id': 'chat-server-1', 'host': '127.0.0.1', 'port': 6050}, {'id': 'chat-server-1', 'host': '192.168.1.136', 'port': 6050},
{'id': 'chat-server-2', 'host': '127.0.0.1', 'port': 6051}, {'id': 'chat-server-2', 'host': '192.168.1.136', 'port': 6051},
{'id': 'chat-server-3', 'host': '127.0.0.1', 'port': 6052} {'id': 'chat-server-3', 'host': '192.168.1.136', 'port': 6052}
], ],
'role': [ 'role': [
{'id': 'role-server-1', 'host': '127.0.0.1', 'port': 6053} {'id': 'role-server-1', 'host': '192.168.1.136', 'port': 6053}
], ],
'battle': [ 'battle': [
{'id': 'battle-server-1', 'host': '127.0.0.1', 'port': 6054} {'id': 'battle-server-1', 'host': '192.168.1.136', 'port': 6054}
], ],
'gate': [ 'gate': [
{'id': 'gate-server-1', 'host': '127.0.0.1', 'clientHost': 'zyz_web.trgame.cn', 'clientPort': 3014, 'frontend': true}, {'id': 'gate-server-1', 'host': '192.168.1.136', 'clientHost': 'zyz_web.trgame.cn', 'clientPort': 3014, 'frontend': true},
{ {
'id': 'gate-server-2', 'id': 'gate-server-2',
'host': '127.0.0.1', 'host': '192.168.1.136',
'clientHost': 'zyz_web.trgame.cn', 'clientHost': 'zyz_web.trgame.cn',
'clientPort': 3015, 'clientPort': 3015,
'frontend': true 'frontend': true
} }
], ],
'gm': [ 'gm': [
{'id': 'gm-server-1', 'host': '127.0.0.1', 'port': 6055} {'id': 'gm-server-1', 'host': '192.168.1.136', 'port': 6055}
], ],
'systimer': [ 'systimer': [
{'id': 'systimer-server-1', 'host': '127.0.0.1', 'port': 6056} {'id': 'systimer-server-1', 'host': '192.168.1.136', 'port': 6056}
] ]
}, },
'dev': { 'dev': {
'connector': [ 'connector': [
{'id': 'connector-server-1', 'port': 4050, 'clientHost': 'zyzdev.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3050, 'frontend': true, "args": " --inspect=9237"}, {'id': 'connector-server-1', 'port': 4050, 'clientHost': 'zyzdev.trgame.cn', 'host': '192.168.1.136', 'clientPort': 3050, 'frontend': true, "args": " --inspect=9237"},
{'id': 'connector-server-2', 'port': 4051, 'clientHost': 'zyzdev.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3051, 'frontend': true, "args": " --inspect=9229"}, {'id': 'connector-server-2', 'port': 4051, 'clientHost': 'zyzdev.trgame.cn', 'host': '192.168.1.136', 'clientPort': 3051, 'frontend': true, "args": " --inspect=9229"},
{'id': 'connector-server-3', 'port': 4052, 'clientHost': 'zyzdev.trgame.cn', 'host': '127.0.0.1', 'clientPort': 3052, 'frontend': true, "args": " --inspect=9238"} {'id': 'connector-server-3', 'port': 4052, 'clientHost': 'zyzdev.trgame.cn', 'host': '192.168.1.136', 'clientPort': 3052, 'frontend': true, "args": " --inspect=9238"}
], ],
'chat': [ 'chat': [
{'id': 'chat-server-1', 'host': '127.0.0.1', 'port': 6050,"args": " --inspect=9234"}, {'id': 'chat-server-1', 'host': '192.168.1.136', 'port': 6050,"args": " --inspect=9234"},
{'id': 'chat-server-2', 'host': '127.0.0.1', 'port': 6051,"args": " --inspect=9235"}, {'id': 'chat-server-2', 'host': '192.168.1.136', 'port': 6051,"args": " --inspect=9235"},
{'id': 'chat-server-3', 'host': '127.0.0.1', 'port': 6052,"args": " --inspect=9236"} {'id': 'chat-server-3', 'host': '192.168.1.136', 'port': 6052,"args": " --inspect=9236"}
], ],
'role': [ 'role': [
{'id': 'role-server-1', 'host': '127.0.0.1', 'port': 6053,"args": " --inspect=9231"} {'id': 'role-server-1', 'host': '192.168.1.136', 'port': 6053,"args": " --inspect=9231"}
], ],
'battle': [ 'battle': [
{'id': 'battle-server-1', 'host': '127.0.0.1', 'port': 6054,"args": " --inspect=9230"} {'id': 'battle-server-1', 'host': '192.168.1.136', 'port': 6054,"args": " --inspect=9230"}
], ],
'gate': [ 'gate': [
{'id': 'gate-server-1', 'host': '127.0.0.1', 'clientHost': 'zyzdev.trgame.cn', 'clientPort': 3014, 'frontend': true,"args": " --inspect=9227"}, {'id': 'gate-server-1', 'host': '192.168.1.136', 'clientHost': 'zyzdev.trgame.cn', 'clientPort': 3014, 'frontend': true,"args": " --inspect=9227"},
{ {
'id': 'gate-server-2', 'id': 'gate-server-2',
'host': '127.0.0.1', 'host': '192.168.1.136',
'clientHost': 'zyzdev.trgame.cn', 'clientHost': 'zyzdev.trgame.cn',
'clientPort': 3015, 'clientPort': 3015,
'frontend': true, 'frontend': true,
@@ -140,10 +149,10 @@ module.exports = {
} }
], ],
'gm': [ 'gm': [
{'id': 'gm-server-1', 'host': '127.0.0.1', 'port': 6055,"args": " --inspect=9232"} {'id': 'gm-server-1', 'host': '192.168.1.136', 'port': 6055,"args": " --inspect=9232"}
], ],
'systimer': [ 'systimer': [
{'id': 'systimer-server-1', 'host': '127.0.0.1', 'port': 6056, "args": " --inspect=9233"} {'id': 'systimer-server-1', 'host': '192.168.1.136', 'port': 6056, "args": " --inspect=9233"}
] ]
} }
}; };