This commit is contained in:
aozhiwei 2024-04-20 17:38:31 +08:00
parent b411e9d46a
commit 166ec772b0
2 changed files with 46 additions and 40 deletions

View File

@ -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 {

View File

@ -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) {