优化:抽象推送方法
This commit is contained in:
@@ -8,12 +8,12 @@ import { PrivateMessageModel, PrivateMessageParam, PrivateMessageType } from './
|
||||
import { GroupMessageParam, GroupMessageType } from '../db/GroupMessage';
|
||||
import { genCode, resResult } from '../pubUtils/util';
|
||||
import { pinus } from 'pinus';
|
||||
import { CHANNEL_PREFIX, MSG_CODE_LEN, MSG_STATUS, ON_PRIVATE_MSG_ROUTE, MSG_TYPE, MSG_SOURCE } from '../consts';
|
||||
import { getAllServers, getRoleOnlineInfo } from './redisService';
|
||||
import { CHANNEL_PREFIX, MSG_CODE_LEN, MSG_STATUS, ON_PRIVATE_MSG_ROUTE, MSG_TYPE, MSG_SOURCE, PUSH_ROUTE } from '../consts';
|
||||
import { getRoleOnlineInfo } from './redisService';
|
||||
import { ChatInfoModel } from '../db/ChatInfo';
|
||||
import { channelServer } from './chatChannelService';
|
||||
import { AccuseRecModel, AccueseParam } from '../db/AccuseRec';
|
||||
import { getSimpleRoleInfo, getSimpleRoleInfos } from './roleService';
|
||||
import { sendMessageToCityWithSuc, sendMessageToGuildWithSuc, sendMessageToServerWithSuc, sendMessageToTeam } from './pushService';
|
||||
|
||||
export * from './chatChannelService';
|
||||
export * from './sysChatService';
|
||||
@@ -142,10 +142,20 @@ export async function pushMsgToRole(msg: PrivateMessageType | GroupMessageType)
|
||||
*/
|
||||
export async function pushGroupMsgToRoom(msg: GroupMessageType) {
|
||||
if (!msg) return;
|
||||
const roomId = msg.roomId!;
|
||||
const channelSid = await channelServer(roomId);
|
||||
const roleInfo = await getSimpleRoleInfo(msg.roleId);
|
||||
await pinus.app.rpc.chat.chatRemote.sendGroupMsg.toServer(channelSid, roomId, { ...msg, roleInfo });
|
||||
if(msg.channel == CHANNEL_PREFIX.WORLD || msg.channel == CHANNEL_PREFIX.SYS || msg.channel == CHANNEL_PREFIX.WORLD_AUCTION) {
|
||||
let serverId = parseInt(msg.channelId);
|
||||
await sendMessageToServerWithSuc(serverId, PUSH_ROUTE.GROUP_MSG, { ...msg, roleInfo });
|
||||
} else if(msg.channel == CHANNEL_PREFIX.GUILD || msg.channel == CHANNEL_PREFIX.GUILD_AUCTION) {
|
||||
let guildCode = msg.channelId;
|
||||
await sendMessageToGuildWithSuc(guildCode, PUSH_ROUTE.GROUP_MSG, { ...msg, roleInfo })
|
||||
} else if (msg.channel == CHANNEL_PREFIX.TEAM) {
|
||||
let teamCode = msg.channelId;
|
||||
await sendMessageToTeam(teamCode, PUSH_ROUTE.GROUP_MSG, { ...msg, roleInfo });
|
||||
} else if (msg.channel == CHANNEL_PREFIX.CITY) {
|
||||
let cityId = parseInt(msg.channelId);
|
||||
await sendMessageToCityWithSuc(cityId, PUSH_ROUTE.GROUP_MSG, { ...msg, roleInfo });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -354,11 +364,15 @@ export async function delPrivateMsg(roleId: string, targetRoleId: string) {
|
||||
* @description 发送组队一键邀请消息
|
||||
* @param {string} teamCode 队伍唯一标识
|
||||
*/
|
||||
export async function pushTeamInviteMsg(roleId: string, roleName: string, serverId: number, teamCode: string, blueprtId: number) {
|
||||
const msgDataWorld = await createGroupMsg(roleId, roleName, CHANNEL_PREFIX.WORLD, `${serverId}`, MSG_TYPE.RICH_TEXT, MSG_SOURCE.TEAM_INVITE, JSON.stringify({ roleName, teamCode, blueprtId }), null, null);
|
||||
const msgDataGuild = await createGroupMsg(roleId, roleName, CHANNEL_PREFIX.GUILD, `${serverId}`, MSG_TYPE.RICH_TEXT, MSG_SOURCE.TEAM_INVITE, JSON.stringify({ roleName, teamCode, blueprtId }), null, null);
|
||||
export async function pushTeamInviteMsg(roleId: string, roleName: string, serverId: number, guildCode: string, teamCode: string, blueprtId: number) {
|
||||
let msgDataWorld = await createGroupMsg(roleId, roleName, CHANNEL_PREFIX.WORLD, `${serverId}`, MSG_TYPE.RICH_TEXT, MSG_SOURCE.TEAM_INVITE, JSON.stringify({ roleName, teamCode, blueprtId }), null, null);
|
||||
await pushGroupMsgToRoom(msgDataWorld);
|
||||
await pushGroupMsgToRoom(msgDataGuild);
|
||||
|
||||
let msgDataGuild: GroupMessageType;
|
||||
if(guildCode) {
|
||||
msgDataGuild = await createGroupMsg(roleId, roleName, CHANNEL_PREFIX.GUILD, `${guildCode}`, MSG_TYPE.RICH_TEXT, MSG_SOURCE.TEAM_INVITE, JSON.stringify({ roleName, teamCode, blueprtId }), null, null);
|
||||
await pushGroupMsgToRoom(msgDataGuild);
|
||||
}
|
||||
return { msgDataWorld, msgDataGuild };
|
||||
}
|
||||
|
||||
@@ -404,13 +418,3 @@ export async function checkFilterWords(word: string) {
|
||||
return hasBlock;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
export async function pushCurrentTime(time: number) {
|
||||
let serverlists = await getAllServers()
|
||||
for(let serverId of serverlists) {
|
||||
let roomId = groupRoomId(CHANNEL_PREFIX.WORLD, serverId);
|
||||
const channelSid = await channelServer(roomId);
|
||||
await pinus.app.rpc.chat.chatRemote.pushCurrentTime.toServer(channelSid, serverId, time);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user