From 166ec772b0d72a51a1ffc0a66309942081a1e1d9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 20 Apr 2024 17:38:31 +0800 Subject: [PATCH] 1 --- server/imserver/friend/friendmgr.go | 2 +- server/imserver/guild/guildmgr.go | 84 +++++++++++++++-------------- 2 files changed, 46 insertions(+), 40 deletions(-) diff --git a/server/imserver/friend/friendmgr.go b/server/imserver/friend/friendmgr.go index af49ee28..f7d8a7bd 100644 --- a/server/imserver/friend/friendmgr.go +++ b/server/imserver/friend/friendmgr.go @@ -182,7 +182,7 @@ func (this *friendMgr) AsyncGetApplyList(lastIdx int64, accountId string, return } users := []string{} - if pg.Rows.Next() { + for pg.Rows.Next() { idx := q5.ToInt64(pg.Rows.GetByName("idx")) senderId := pg.Rows.GetByName("sender_id") if idx > lastSinceId { diff --git a/server/imserver/guild/guildmgr.go b/server/imserver/guild/guildmgr.go index 0ae78005..fa68fca2 100644 --- a/server/imserver/guild/guildmgr.go +++ b/server/imserver/guild/guildmgr.go @@ -697,50 +697,56 @@ func (this *guildMgr) AsyncUpdateGuild(accountId string, kv map[int32]string, cb this.addUsingName(name) guildName = name } - f5.NewLockAsyncTask([][]string{ - {constant.GUILD_ID_LOCK_KEY, guild.guildId}, - {constant.GUILD_NAME_LOCK_KEY, guild.guildName}, - {constant.GUILD_NAME_LOCK_KEY, guildName}, - {constant.GUILD_MEMBER_LOCK_KEY, accountId}, + doFunc := func () { + f5.NewLockAsyncTask([][]string{ + {constant.GUILD_ID_LOCK_KEY, guild.guildId}, + {constant.GUILD_NAME_LOCK_KEY, guild.guildName}, + {constant.GUILD_NAME_LOCK_KEY, guildName}, + {constant.GUILD_MEMBER_LOCK_KEY, accountId}, }, - func (task *f5.LockAsyncTask) { - fields := [][]string{} - for k, v := range(kv) { - if k == constant.GUILD_UPDATE_FIELD_NOTICE { - q5.AppendSlice(&fields, []string{"notice", v}) - } else if k == constant.GUILD_UPDATE_FIELD_AVATAR { - q5.AppendSlice(&fields, []string{"badge", v}) - } else if k == constant.GUILD_UPDATE_FIELD_NAME { - q5.AppendSlice(&fields, []string{"guild_name", v}) - } else if k == constant.GUILD_UPDATE_FIELD_COND_TYPE { - q5.AppendSlice(&fields, []string{"join_cond_type", v}) - } else if k == constant.GUILD_UPDATE_FIELD_COND_VALUE { - q5.AppendSlice(&fields, []string{"join_cond_value", v}) - } - } - if len(fields) <= 0 { - task.SetSucc() - cb(0, "") - return - } - model.Guild.UpdateKv(guild.guildId, fields, - func (err error, lastInsertId int64, rowsAffected int64) { - if err != nil { - task.SetFail() - cb(500, "server internal error") - return + func (task *f5.LockAsyncTask) { + fields := [][]string{} + for k, v := range(kv) { + if k == constant.GUILD_UPDATE_FIELD_NOTICE { + q5.AppendSlice(&fields, []string{"notice", v}) + } else if k == constant.GUILD_UPDATE_FIELD_AVATAR { + q5.AppendSlice(&fields, []string{"badge", v}) + } else if k == constant.GUILD_UPDATE_FIELD_NAME { + q5.AppendSlice(&fields, []string{"guild_name", v}) + } else if k == constant.GUILD_UPDATE_FIELD_COND_TYPE { + q5.AppendSlice(&fields, []string{"join_cond_type", v}) + } else if k == constant.GUILD_UPDATE_FIELD_COND_VALUE { + q5.AppendSlice(&fields, []string{"join_cond_value", v}) } - guild.updateByKv(kv) + } + if len(fields) <= 0 { task.SetSucc() cb(0, "") return - }) - }).OnExit( - func (task *f5.LockAsyncTask) { - if name, ok := kv[constant.GUILD_UPDATE_FIELD_NAME]; ok { - this.removeUsingName(name) - } - }) + } + model.Guild.UpdateKv(guild.guildId, fields, + func (err error, lastInsertId int64, rowsAffected int64) { + if err != nil { + task.SetFail() + cb(500, "server internal error") + return + } + guild.updateByKv(kv) + task.SetSucc() + cb(0, "") + return + }) + }).OnExit( + func (task *f5.LockAsyncTask) { + if name, ok := kv[constant.GUILD_UPDATE_FIELD_NAME]; ok { + this.removeUsingName(name) + } + }) + } + if _, ok := kv[constant.GUILD_UPDATE_FIELD_NAME]; ok { + } else { + doFunc() + } } func (this *guildMgr) NotifyGuildMsg(guildId string, msg proto.Message) {