From 45e4b2df6751afeec19c7b5902f8afdaa1d8e814 Mon Sep 17 00:00:00 2001 From: luying Date: Thu, 21 Jan 2021 20:52:32 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/battle/handler/guildHandler.ts | 30 +++++++++++++++++++ shared/db/GuildRec.ts | 2 +- shared/db/Mail.ts | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/game-server/app/servers/battle/handler/guildHandler.ts b/game-server/app/servers/battle/handler/guildHandler.ts index b6914f2a9..1f52d468d 100644 --- a/game-server/app/servers/battle/handler/guildHandler.ts +++ b/game-server/app/servers/battle/handler/guildHandler.ts @@ -13,6 +13,8 @@ import { GuildListInfo } from '../../../pubUtils/interface'; import { UserGuildApplyModel } from '../../../db/UserGuildApply'; import { hasStructureConsume, getStructureConsume, gameData } from '../../../pubUtils/data'; import { GuildRecModel } from '../../../db/GuildRec'; +import { MailModel } from '../../../db/Mail'; +import { getRedis } from '../../../services/redisService'; export default function (app: Application) { return new GuildHandler(app); @@ -688,4 +690,32 @@ export class GuildHandler { return resResult(STATUS.SUCCESS, { list }); } + + // 团长发送消息给军团内所有成员的邮箱 + async sendMail(msg: { code: string, info: string }, session: BackendSession) { + + const roleId = session.get('roleId'); + const roleName = session.get('roleName'); + const serverId = session.get('serverId'); + const { code, info } = msg; + + const checkResult = await checkAuth(GUILD_OPERATE.SEND_MAIL, roleId, code); + if (!checkResult) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH); + + const guild = await GuildModel.findByCode(code, serverId); + if(!guild) return resResult(STATUS.GUILD_NOT_FOUND); + + const { members } = guild; + //下发邮件 + for(let roleId of members) { + let mail = await MailModel.addMail({roleId, goods: [], sendName: roleName, mailId: 1, content: info}); + let key = 'login_roleId_' + roleId; + let sid = await getRedis(key); + if (!!sid) { + pinus.app.rpc.connector.connectorRemote.pushMessage.toServer(sid, roleId, 'onMailsAdd', [mail]); + } + } + + return resResult(STATUS.SUCCESS, { isSuccess: true }); + } } \ No newline at end of file diff --git a/shared/db/GuildRec.ts b/shared/db/GuildRec.ts index 1af41641e..c818ff5f9 100644 --- a/shared/db/GuildRec.ts +++ b/shared/db/GuildRec.ts @@ -35,7 +35,7 @@ export default class GuildRec extends BaseModel { } public static async getGuildRec(guildCode: string) { - const result: GuildRecType[] = await GuildRecModel.find({ guildCode }).lean(); + const result: GuildRecType[] = await GuildRecModel.find({ guildCode }).sort({createTime: -1}).lean(); return result; } } diff --git a/shared/db/Mail.ts b/shared/db/Mail.ts index 5fd71926b..cb9c451ab 100644 --- a/shared/db/Mail.ts +++ b/shared/db/Mail.ts @@ -20,7 +20,7 @@ export default class Mail extends BaseModel { @prop({ required: true, default: nowSeconds() }) sendTime: number; - @prop({ required: true }) + @prop({ required: true, default: "" }) sendName: string; @prop({ required: true })