diff --git a/game-server/app/servers/activity/handler/luckyTurntableHandler.ts b/game-server/app/servers/activity/handler/luckyTurntableHandler.ts index 43f4b9071..faf8898fe 100644 --- a/game-server/app/servers/activity/handler/luckyTurntableHandler.ts +++ b/game-server/app/servers/activity/handler/luckyTurntableHandler.ts @@ -63,7 +63,7 @@ export class LuckyTurntableHandler { await ActivityTurntableModel.updateData(serverId, activityId, roleId, pick(playerData, ['todayCount', 'count', 'records', 'greatRewardCount'])); await addItems(roleId, roleName, sid, goodResult, ITEM_CHANGE_REASON.ACT_TURNTABLE_PULL); - return resResult(STATUS.SUCCESS, { result, records }); + return resResult(STATUS.SUCCESS, { result, records, todayCount: playerData.todayCount, count: playerData.count }); } diff --git a/game-server/app/servers/chat/remote/guildRemote.ts b/game-server/app/servers/chat/remote/guildRemote.ts index 7e2033483..a5cc1cada 100644 --- a/game-server/app/servers/chat/remote/guildRemote.ts +++ b/game-server/app/servers/chat/remote/guildRemote.ts @@ -92,6 +92,7 @@ export class GuildRemote { */ private pushMessage(guildCode: string, path: string, message: any) { let channel = this.getChannel(guildCode); + console.log('##### channel', guildCode, channel) if (!!channel) { channel.pushMessage(path, resResult(STATUS.SUCCESS, message)); } @@ -453,7 +454,7 @@ export class GuildRemote { * @param path 推送地址 * @param param 内容 */ - public async pushActivityoGuild(guildCode: string, path: string, param: any) { + public async pushActivityToGuild(guildCode: string, path: string, param: any) { try { this.pushMessage(guildCode, path, param); } catch(e) { diff --git a/game-server/app/servers/guild/handler/guildHandler.ts b/game-server/app/servers/guild/handler/guildHandler.ts index af56c31c0..14db3c0e4 100644 --- a/game-server/app/servers/guild/handler/guildHandler.ts +++ b/game-server/app/servers/guild/handler/guildHandler.ts @@ -27,6 +27,7 @@ import { checkActivityTask, checkTask } from '../../../services/taskService'; import { guildInter } from '../../../pubUtils/interface'; import * as dicParam from '../../../pubUtils/dicParam'; import { reportTAEvent } from '../../../services/sdkService'; +import { changeGuildActivity, guildDismisActivity } from '../../../services/activity/guildPayService'; export default function (app: Application) { @@ -575,6 +576,7 @@ export class GuildHandler { // 删除channel let chatSid = await getGuildChannelSid(code); + await guildDismisActivity(code, serverId); this.app.rpc.chat.guildRemote.dismiss.toServer(chatSid, code); let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, { serverId }); @@ -620,6 +622,7 @@ export class GuildHandler { setUserGuildSession(session, null); reportTAEvent(roleId, TA_EVENT.GUILD_QUIT, { name: guild.name, way: GUILD_QUIT_WAY.QUIT }, ip); + changeGuildActivity('', serverId, roleId, sid); return resResult(STATUS.SUCCESS, { hasGuild: role.hasGuild }); } @@ -647,14 +650,16 @@ export class GuildHandler { await removeTrainRank(code, roleId, guild.trainId); let chatSid = await getGuildChannelSid(code); - const { isOnline, sid } = await getRoleOnlineInfo(roleId); + const { isOnline, sid } = await getRoleOnlineInfo(memberRoleId); this.app.rpc.chat.guildRemote.memberQuit.toServer(chatSid, code, roleId, guild, sid); // 添加动态 const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.QUIT_GUILD, [role.roleName]); this.app.rpc.chat.guildRemote.addRec.toServer(chatSid, rec); - if(isOnline) + if(isOnline) { await this.app.rpc.connector.connectorRemote.setOtherUserGuildSession.toServer(sid,[{ roleId: memberRoleId, userGuild }]); + changeGuildActivity('', serverId, memberRoleId, sid); + } await sendMailByContent(MAIL_TYPE.GUILD_BE_KICK, memberRoleId, { sendName: roleName, params: [guild.name] }); reportTAEvent(memberRoleId, TA_EVENT.GUILD_QUIT, { name: guild.name, way: GUILD_QUIT_WAY.KICK }); diff --git a/game-server/app/services/activity/activityService.ts b/game-server/app/services/activity/activityService.ts index 219fcbf03..a5e2ed480 100644 --- a/game-server/app/services/activity/activityService.ts +++ b/game-server/app/services/activity/activityService.ts @@ -364,6 +364,7 @@ interface pushActivityParamInter { totalPoint?: number; // 新将好礼(type37)和战令(type42)更新后的积分 payMemberCnt?: number; // 军团充值活动,你的军团充值的人数 payMember?: string; // 军团充值活动,充值人员名字,添加到payRecord里面 + payRecord?: string[]; // 军团全部充值人名字 } export interface pushActivityInter { @@ -382,6 +383,7 @@ export async function pushActivities(arr: pushActivityInter[], roleId: string, s sid = onlineUser.sid; } if(!!sid && arr.length > 0) { + console.log(roleId, sid) pinus.app.get('channelService').pushMessageByUids('onActivityUpdate', resResult(STATUS.SUCCESS, { activities: arr @@ -394,7 +396,7 @@ export async function pushActivitiesToGuild(arr: pushActivityInter[], guildCode: let chatSid = await getGuildChannelSid(guildCode); console.log('####', chatSid, arr) if(!!chatSid && arr.length > 0) { - pinus.app.rpc.chat.guildRemote.sendMailToGuild.toServer(chatSid, guildCode, 'onActivityUpdate', + pinus.app.rpc.chat.guildRemote.pushActivityToGuild.toServer(chatSid, guildCode, 'onActivityUpdate', resResult(STATUS.SUCCESS, { activities: arr }), diff --git a/game-server/app/services/activity/guildPayService.ts b/game-server/app/services/activity/guildPayService.ts index 31878b49e..a80a9e00f 100644 --- a/game-server/app/services/activity/guildPayService.ts +++ b/game-server/app/services/activity/guildPayService.ts @@ -2,7 +2,7 @@ import { ACTIVITY_TYPE } from "../../consts"; import { ActivityGuildPayModel } from "../../db/ActivityGuildPay"; import { RoleType } from "../../db/Role"; import { GuildPayData } from "../../domain/activityField/guildPay"; -import { getActivitiesByType, getActivityById, pushActivitiesToGuild, pushActivityInter } from "./activityService"; +import { getActivitiesByType, getActivityById, pushActivities, pushActivitiesToGuild, pushActivityInter } from "./activityService"; import { ServerlistModel } from '../../db/Serverlist'; import { ActivityGuildPayRecordModel } from "../../db/ActivityGuildPayRecord"; @@ -58,4 +58,25 @@ export async function addGuildPay(role: RoleType, price: number) { } await pushActivitiesToGuild(pushResult, guildCode); } +} + +export async function changeGuildActivity(guildCode: string, serverId: number, roleId: string, sid: string) { + let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GUILD_PAY); + let pushResult: pushActivityInter[] = []; + for(let activityData of activities) { + let { activityId, type: activityType } = activityData; + let obj = await getGuildPayData(serverId, activityId, roleId, guildCode); + pushResult.push({ activityId, activityType, param: { payRecord: obj.payRecord, payMemberCnt: obj.payMemberCnt } }); + } + await pushActivities(pushResult, roleId, sid); +} + +export async function guildDismisActivity(guildCode: string, serverId: number) { + let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GUILD_PAY); + let pushResult: pushActivityInter[] = []; + for(let activityData of activities) { + let { activityId, type: activityType } = activityData; + pushResult.push({ activityId, activityType, param: { payRecord: [], payMemberCnt: 0 } }); + } + await pushActivitiesToGuild(pushResult, guildCode); } \ No newline at end of file diff --git a/game-server/app/services/guildService.ts b/game-server/app/services/guildService.ts index ffb1b9d59..ed7a0655e 100644 --- a/game-server/app/services/guildService.ts +++ b/game-server/app/services/guildService.ts @@ -19,6 +19,7 @@ import { Rank } from "./rankService"; import { checkActivityTask, checkTask } from "./taskService"; import { CounterModel } from "../db/Counter"; import { getAuction } from "./auctionService"; +import { changeGuildActivity } from "./activity/guildPayService"; export async function getMyGuildInfo(roleId: string, sid: string, userGuild: UserGuildType, guild: GuildType, serverId: number, session: FrontendOrBackendSession) { @@ -121,6 +122,7 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol session.set('guildCode', code); let auctionInfo = await getAuction(code, session); pinus.app.channelService.pushMessageByUids('onAuctionUpdate', resResult(STATUS.SUCCESS, auctionInfo), [{ uid: roleId, sid }]); + changeGuildActivity(code, serverId, roleId, sid); } //成长任务-加入军团