From 305123c493d7c73d365124a2313b1671f85d6904 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 8 Apr 2024 20:07:18 +0800 Subject: [PATCH] 1 --- server/imserver_new/guild/guildmgr.go | 46 ++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index e6aac509..65ec6d0e 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -590,8 +590,52 @@ func (this *guildMgr) AsyncGetGuildLogs(string, string, func(int32, string)) { } -func (this *guildMgr) AsyncUpdateGuild(string, map[int32]string, func(int32, string)) { +func (this *guildMgr) AsyncUpdateGuild(accountId string, kv map[int32]string, cb func(int32, string)) { + guild := this.internalGetGuildByAccountId(accountId) + if guild == nil { + cb(1, "You don't have a cube yet") + return + } + if !guild.isOwner(accountId) { + cb(2, "Insufficient permissions") + return + } + f5.NewLockAsyncTask([][]string{ + {constant.GUILD_ID_LOCK_KEY, guild.guildId}, + {constant.GUILD_NAME_LOCK_KEY, guild.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 + } + f5.GetJsStyleDb().Update( + constant.FRIEND_DB, + "t_guild", + [][]string{ + {"guild_id", guild.guildId}, + }, + fields, + func (err error, lastInsertId int64, rowsAffected int64) { + }) + }) } func (this *guildMgr) asyncSetApplyStatus(accountId string, guildId string, status int32,