diff --git a/server/imserver_new/common/types.go b/server/imserver_new/common/types.go index 8361a359..f8aeb43a 100644 --- a/server/imserver_new/common/types.go +++ b/server/imserver_new/common/types.go @@ -106,3 +106,9 @@ type CacheMgr interface { AsyncGetUsersAndFillMFGuildMember([]string, *[]*cs.MFGuildMember, func(int32, string)) AsyncSearch(int64, string, *[]*cs.MFUser, func(int32, string, int64)) } + +type DbLogMgr interface { + FriendAdd(string, string) + FriendDel(string, string) + +} diff --git a/server/imserver_new/constant/constant.go b/server/imserver_new/constant/constant.go index 4b014b06..657452d8 100644 --- a/server/imserver_new/constant/constant.go +++ b/server/imserver_new/constant/constant.go @@ -12,6 +12,7 @@ const ( FRIEND_MGR_MODULE_IDX GUILD_MGR_MODULE_IDX CACHE_MGR_MODULE_IDX + DBLOG_MGR_MODULE_IDX MAX_MODULE_IDX ) diff --git a/server/imserver_new/dblog/dblogmgr.go b/server/imserver_new/dblog/dblogmgr.go new file mode 100644 index 00000000..1b7d7dcb --- /dev/null +++ b/server/imserver_new/dblog/dblogmgr.go @@ -0,0 +1,13 @@ +package dblog + +type dbLogMgr struct { + +} + +func (this* dbLogMgr) Init() { + +} + +func (this* dbLogMgr) UnInit() { + +} diff --git a/server/imserver_new/dblog/export.go b/server/imserver_new/dblog/export.go new file mode 100644 index 00000000..9d9dce9a --- /dev/null +++ b/server/imserver_new/dblog/export.go @@ -0,0 +1,12 @@ +package dblog + +import ( + "main/constant" + "main/global" +) + +var _dbLogMgr = new(dbLogMgr) + +func init() { + global.RegModule(constant.DBLOG_MGR_MODULE_IDX, _dbLogMgr) +} diff --git a/server/imserver_new/global/global.go b/server/imserver_new/global/global.go index c7d235b1..ca71ca8f 100644 --- a/server/imserver_new/global/global.go +++ b/server/imserver_new/global/global.go @@ -23,6 +23,7 @@ var wspListener common.WspListener var friendMgr common.FriendMgr var guildMgr common.GuildMgr var cacheMgr common.CacheMgr +var dbLogMgr common.DbLogMgr func GetPlayerMgr() common.PlayerMgr { return playerMgr @@ -48,6 +49,10 @@ func GetApp() common.App { return app } +func GetDbMgrLog() common.DbLogMgr { + return dbLogMgr +} + func RegModule(idx int32, m q5.Module) { fmt.Printf("RegModule module %d\n", idx) modules[idx] = m @@ -80,6 +85,10 @@ func RegModule(idx int32, m q5.Module) { { cacheMgr = m.(common.CacheMgr) } + case constant.DBLOG_MGR_MODULE_IDX: + { + dbLogMgr = m.(common.DbLogMgr) + } default: { panic("unknow module") diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index 93eb6fe3..eee8e3ad 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -34,6 +34,8 @@ func (this *guildMgr) UnInit() { func (this *guildMgr) loadFromDB() { this.loadGuild() this.loadGuildMember() + this.clearEmptyGuild() + this.rearrangement() } func (this *guildMgr) loadGuild() { @@ -46,7 +48,6 @@ func (this *guildMgr) loadGuild() { p.loadFromDb(ds) this.idHash[p.guildId] = p this.nameHash[p.guildName] = p - this.updateGuildRank(p) }, func (err error) { panic(fmt.Sprintf("loadGuild dberror:%s", err)) @@ -893,6 +894,17 @@ func (this *guildMgr) rearrangement() { }) } +func (this *guildMgr) clearEmptyGuild() { + emptyGuilds := make(map[string]*guild) + this.traverseGuild( + func (g *guild) bool { + if g.GetMemberNum() <= 0 { + emptyGuilds[g.guildId] = g + } + return true + }) +} + func (this* guildMgr) updateGuildRank(guild *guild) { if _, ok := this.guildRankHash[guild.guildId]; ok { this.rankSort() diff --git a/server/imserver_new/initialize/enter.go b/server/imserver_new/initialize/enter.go index 5ee0c138..b16f1ca7 100644 --- a/server/imserver_new/initialize/enter.go +++ b/server/imserver_new/initialize/enter.go @@ -7,6 +7,7 @@ import ( _ "main/guild" _ "main/player" _ "main/listener" + _ "main/dblog" . "main/global" )