From ccc80291b330d5e41cbf9d034bf561f6f37ac270 Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 24 Nov 2021 18:08:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=8D=E5=8D=96=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B6=85=E8=B6=8A=E7=89=8C=E4=BB=B7=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/chat/remote/chatRemote.ts | 4 +-- .../app/servers/chat/remote/guildRemote.ts | 8 +++-- .../servers/guild/handler/auctionHandler.ts | 20 +------------ game-server/app/services/auctionService.ts | 30 +++++++++++-------- 4 files changed, 26 insertions(+), 36 deletions(-) diff --git a/game-server/app/servers/chat/remote/chatRemote.ts b/game-server/app/servers/chat/remote/chatRemote.ts index 3a58476bd..3eb7a3d7e 100644 --- a/game-server/app/servers/chat/remote/chatRemote.ts +++ b/game-server/app/servers/chat/remote/chatRemote.ts @@ -260,7 +260,7 @@ export class ChatRemote { * @param guildCode */ public async sendGuildAuction(guildCode: string, lot: LotType) { - let roomId = groupRoomId(CHANNEL_PREFIX.GUILD_AUCTION, guildCode); + let roomId = groupRoomId(CHANNEL_PREFIX.GUILD, guildCode); let channel = this.channelService.getChannel(roomId, false); if(!channel) return false; @@ -269,7 +269,7 @@ export class ChatRemote { } public async sendWorldAuction(serverId: number, lot: LotType) { - let roomId = groupRoomId(CHANNEL_PREFIX.WORLD_AUCTION, serverId); + let roomId = groupRoomId(CHANNEL_PREFIX.WORLD, serverId); let channel = this.channelService.getChannel(roomId, false); if(!channel) return false; diff --git a/game-server/app/servers/chat/remote/guildRemote.ts b/game-server/app/servers/chat/remote/guildRemote.ts index c6d0e0de8..6b4bcc953 100644 --- a/game-server/app/servers/chat/remote/guildRemote.ts +++ b/game-server/app/servers/chat/remote/guildRemote.ts @@ -44,6 +44,8 @@ export class GuildRemote { private GUILD_BOSS_ENCOURAGE = 'onGuildBossEncourage'; // 鼓舞 private AUCTION_UPDATE = 'onAuctionUpdate'; // 拍卖行更新 private AUCTION_ADD = 'onAuctionAdd'; // 拍卖行增加 + private DIVIDEND_UPDATE = 'onDividendsUpdate'; // 拍卖行更新 + private DIVIDEND_ADD = 'onDividendsAdd'; /** * 封装,军团相关channel名: 'guild'+guildCode @@ -321,10 +323,12 @@ export class GuildRemote { } public async pushAuctionUpdate(guildCode: string, param: { lots: LotType[]; dividends: DividendType[] }) { - this.pushMessage(guildCode, this.AUCTION_UPDATE, param); + if(param.lots) this.pushMessage(guildCode, this.AUCTION_UPDATE, { lots: param.lots }); + if(param.dividends) this.pushMessage(guildCode, this.DIVIDEND_UPDATE, { dividends: param.dividends }); } public async pushAuctionAdd(guildCode: string, param: { lots: LotType[]; dividends: DividendType[] }) { - this.pushMessage(guildCode, this.AUCTION_ADD, param); + if(param.lots) this.pushMessage(guildCode, this.AUCTION_ADD, { lots: param.lots }); + if(param.dividends) this.pushMessage(guildCode, this.DIVIDEND_ADD, { dividends: param.dividends }); } } \ No newline at end of file diff --git a/game-server/app/servers/guild/handler/auctionHandler.ts b/game-server/app/servers/guild/handler/auctionHandler.ts index 9396fdc37..f7385863e 100644 --- a/game-server/app/servers/guild/handler/auctionHandler.ts +++ b/game-server/app/servers/guild/handler/auctionHandler.ts @@ -37,34 +37,16 @@ export class AuctionHandler { const { magicWord } = msg; const guildCode = session.get('guildCode'); - const serverId = session.get('serverId'); - const roleId = session.get('roleId'); - const sid = session.get('sid'); - - if(guildCode) { - await addRoleToGuildAuctionChannel(roleId, sid, guildCode); - } - await addRoleToWorldAuctionChannel(roleId, sid, serverId); - let result = await getAuction(guildCode, session, magicWord); return resResult(STATUS.SUCCESS, result); } async leaveAuction(msg: {}, session: BackendSession) { - - const guildCode = session.get('guildCode'); - const serverId = session.get('serverId'); - const roleId = session.get('roleId'); - const sid = session.get('sid'); - - if(guildCode) { - await leaveGuildAuctionChannel(roleId, sid, guildCode); - } - await leaveGuildAuctionChannel(roleId, sid, serverId); return resResult(STATUS.SUCCESS); } + async offer(msg: { code: string, max: boolean }, session: BackendSession) { const { code, max } = msg; const roleId = session.get('roleId'); diff --git a/game-server/app/services/auctionService.ts b/game-server/app/services/auctionService.ts index 1765cbc46..309ee72a8 100644 --- a/game-server/app/services/auctionService.ts +++ b/game-server/app/services/auctionService.ts @@ -223,7 +223,7 @@ export async function genAuction(guildCode: string, sourceType: number, sourceCo const dividend = await DividendModel.createDividend(dividendData); let channelSid = await getGuildChannelSid(guildCode); pinus.app.rpc.chat.guildRemote.pushAuctionAdd.toServer(channelSid, guildCode, { lots, dividends: [dividend] }); -return { lots, dividend }; + return { lots, dividend }; } function posDividend(totalPrice: number, roleRatio: number, totalRatio: number) { @@ -340,7 +340,6 @@ export async function stopAuction() { let lots = await LotModel.setLotSoldByBegin(begin); // 正在竞拍的拍品 await sendLotsRewardToMlail(lots); lots = await LotModel.updateLotsStageByBegin(begin, AUCTION_STAGE.END); - let dividends = await DividendModel.findDividendsByBegin(begin); if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) { let day = getCurDay(); @@ -348,7 +347,7 @@ export async function stopAuction() { pinus.app.rpc.guild.guildActivityRemote.setCurrentTime.broadcast(time); await pushCurrentTime(time); } - await pushAuctionUpdate(lots, dividends); + await pushAuctionUpdate(lots, []); return true; } catch (e) { console.error('stopAuction err: ', e); @@ -450,7 +449,7 @@ export async function getAuction(guildCode: string, session: FrontendOrBackendSe export async function pushAuctionOver(lot: LotType) { if(lot.auctionStage == AUCTION_STAGE.GUILD) { - let chatSid = await getGuildAuctionChannelSid(lot.guildCode); + let chatSid = await getGuildChannelSid(lot.guildCode); pinus.app.rpc.chat.chatRemote.sendGuildAuction.toServer(chatSid, lot.guildCode, lot); } else if (lot.auctionStage == AUCTION_STAGE.WORLD) { let chatSid = await getWorldAuctionChannelSid(lot.serverId); @@ -461,7 +460,7 @@ export async function pushAuctionOver(lot: LotType) { export async function pushAuctionUpdate(lots: LotType[], dividends: DividendType[]) { const stage = await auctionStage(); if(stage === AUCTION_STAGE.DEFAULT || stage === AUCTION_STAGE.GUILD) { - let lotsResult = new Map(), dividendsResult = new Map(); + let lotsResult = new Map(); for(let lot of lots) { if(!lotsResult.has(lot.guildCode)) { @@ -469,17 +468,10 @@ export async function pushAuctionUpdate(lots: LotType[], dividends: DividendType } lotsResult.get(lot.guildCode).push(lot); } - for(let dividend of dividends) { - if(!dividendsResult.has(dividend.guildCode)) { - dividendsResult.set(dividend.guildCode, []); - } - dividendsResult.get(dividend.guildCode).push(dividend); - } for(let [guildCode, lots] of lotsResult) { - let dividends = dividendsResult.get(guildCode)||[]; let channelSid = await getGuildChannelSid(guildCode); - pinus.app.rpc.chat.guildRemote.pushAuctionUpdate.toServer(channelSid, guildCode, { lots, dividends }); + pinus.app.rpc.chat.guildRemote.pushAuctionUpdate.toServer(channelSid, guildCode, { lots }); } } else { @@ -497,5 +489,17 @@ export async function pushAuctionUpdate(lots: LotType[], dividends: DividendType pinus.app.rpc.chat.chatRemote.sendAuctionUpdate.toServer(channelSid, serverId, { lots }); } } + let dividendsResult = new Map(); + for(let dividend of dividends) { + if(!dividendsResult.has(dividend.guildCode)) { + dividendsResult.set(dividend.guildCode, []); + } + dividendsResult.get(dividend.guildCode).push(dividend); + } + for(let [guildCode, dividends] of dividendsResult) { + let channelSid = await getGuildChannelSid(guildCode); + pinus.app.rpc.chat.guildRemote.pushAuctionUpdate.toServer(channelSid, guildCode, { dividends }); + } + } \ No newline at end of file