diff --git a/server/imserver_new/common/types.go b/server/imserver_new/common/types.go index 7e5f0496..b4f7ec59 100644 --- a/server/imserver_new/common/types.go +++ b/server/imserver_new/common/types.go @@ -92,7 +92,7 @@ type GuildMgr interface { AsyncGetRecommendGuild(int32, func(int32, string, []string)) AsyncLeave(string, func(int32, string, []string)) - AsyncKickout(string, string, func(int32, string)) + AsyncKickout(string, string, func(int32, string, string, string)) AsyncDisband(string, func(int32, string, []string)) AsyncSetGuildJob(string, string, int32, func(int32, string)) AsyncSearch(int64, string, func(int32, string, int64, []string)) diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index ec041660..21f6ffdb 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -518,22 +518,23 @@ func (this *guildMgr) AsyncSetGuildJob(accountId string, targetId string, guildJ }) } -func (this *guildMgr) AsyncKickout(accountId string, targetId string, cb func(int32, string)) { +func (this *guildMgr) AsyncKickout(accountId string, targetId string, + cb func(int32, string, string, string)) { guild := this.internalGetGuildByAccountId(accountId) if guild == nil { - cb(0, "") + cb(0, "", guild.guildId, guild.guildName) return; } if accountId == targetId { - cb(0, "") + cb(0, "", guild.guildId, guild.guildName) return; } if !guild.isOwner(accountId) { - cb(0, "") + cb(0, "", guild.guildId, guild.guildName) return; } if guild.getMember(targetId) == nil { - cb(0, "") + cb(0, "", guild.guildId, guild.guildName) return; } f5.NewLockAsyncTask( @@ -548,13 +549,13 @@ func (this *guildMgr) AsyncKickout(accountId string, targetId string, cb func(in func (err error, lastInsertId int64, rowsAffected int64) { if err != nil { task.SetFail() - cb(500, "server internal error") + cb(500, "server internal error", "", "") return } guild.delMember(targetId) this.delGuildMember(targetId) task.SetSucc() - cb(0, "") + cb(0, "", guild.guildId, guild.guildName) }) }) } diff --git a/server/imserver_new/player/player.go b/server/imserver_new/player/player.go index aadb96a9..a383647d 100644 --- a/server/imserver_new/player/player.go +++ b/server/imserver_new/player/player.go @@ -574,12 +574,30 @@ func (this *player) CMDismissMember(hdr *f5.MsgHdr, msg *cs.CMDismissMember) { GetGuildMgr().AsyncKickout( this.GetAccountId(), msg.GetDismissAccountId(), - func (errCode int32, errMsg string) { + func (errCode int32, errMsg string, guildId string, guildName string) { if errCode != 0 { this.SendMsg(rspMsg.Err(errCode, errMsg)) return } this.SendMsg(rspMsg) + { + pbUsers := []*cs.MFUser{} + GetCacheMgr().AsyncGetUsersAndFillMFUser( + []string{ + msg.GetDismissAccountId(), + }, + &pbUsers, + func (errCode int32, errMsg string) { + if errCode == 0 && len(pbUsers) > 0 { + notifyMsg := new(cs.SMDismissMemberNotify) + //notifyMsg.GuildId = proto.Int64(q5.ToInt64(guildId)) + //notifyMsg.Name = proto.String(guildName) + notifyMsg.AccountId = proto.String(pbUsers[0].GetAccountId()) + notifyMsg.Username = proto.String(pbUsers[0].GetUsername()) + GetGuildMgr().NotifyGuildMsg(guildId, notifyMsg) + } + }) + } }) }