From a376e6a56c6a8ef564ff9ca40f56f77ba8bb9b3c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 8 Apr 2024 20:19:24 +0800 Subject: [PATCH] 1 --- server/imserver_new/guild/guildmgr.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/server/imserver_new/guild/guildmgr.go b/server/imserver_new/guild/guildmgr.go index 65ec6d0e..c7cd1e44 100644 --- a/server/imserver_new/guild/guildmgr.go +++ b/server/imserver_new/guild/guildmgr.go @@ -600,6 +600,17 @@ func (this *guildMgr) AsyncUpdateGuild(accountId string, kv map[int32]string, cb cb(2, "Insufficient permissions") return } + if name, ok := kv[constant.GUILD_UPDATE_FIELD_NAME]; ok { + if this.internalGetGuildByGuildName(name) != nil { + cb(4, "Cube name already exists") + return + } + if this.isUsingName(name) { + cb(4, "Cube name already exists") + return + } + this.addUsingName(name) + } f5.NewLockAsyncTask([][]string{ {constant.GUILD_ID_LOCK_KEY, guild.guildId}, {constant.GUILD_NAME_LOCK_KEY, guild.guildName}, @@ -633,8 +644,20 @@ func (this *guildMgr) AsyncUpdateGuild(accountId string, kv map[int32]string, cb }, fields, func (err error, lastInsertId int64, rowsAffected int64) { - + if err != nil { + task.SetFail() + cb(500, "server internal error") + return + } + task.SetSucc() + cb(0, "") + return }) + }).OnExit( + func (task *f5.LockAsyncTask) { + if name, ok := kv[constant.GUILD_UPDATE_FIELD_NAME]; ok { + this.removeUsingName(name) + } }) }