1
This commit is contained in:
parent
90dfba2737
commit
e8a8a9fe1b
@ -99,7 +99,7 @@ type GuildMgr interface {
|
||||
AsyncKickout(string, string, func(int32, string))
|
||||
AsyncDisband(string, func(int32, string, []string))
|
||||
AsyncSetGuildJob(string, string, int32, func(int32, string))
|
||||
AsyncSearch(string, string, func(int32, string))
|
||||
AsyncSearch(int64, string, func(int32, string, int64, []string))
|
||||
AsyncGetGuildLogs(string, string, func(int32, string))
|
||||
AsyncUpdateGuild(string, map[int32]string, func(int32, string))
|
||||
}
|
||||
|
@ -733,8 +733,39 @@ func (this *guildMgr) AsyncDisband(accountId string, cb func(int32, string, []st
|
||||
})
|
||||
}
|
||||
|
||||
func (this *guildMgr) AsyncSearch(string, string, func(int32, string)) {
|
||||
|
||||
func (this *guildMgr) AsyncSearch(sinceId int64, q string, cb func(int32, string, int64, []string)) {
|
||||
f5.GetJsStyleDb().PageQuery(
|
||||
constant.GAME_DB,
|
||||
50,
|
||||
0,
|
||||
"SELECT guild_id FROM t_user WHERE 1=1",
|
||||
[]string{},
|
||||
f5.GetDbFilter().Comp(
|
||||
f5.GetDbFilter().GT("idx", q5.ToString(sinceId)).And(),
|
||||
f5.GetDbFilter().GT("deleted", q5.ToString(0)).And(),
|
||||
f5.GetDbFilter().Like("guild_name", q5.ToString(q)).And(),
|
||||
),
|
||||
"",
|
||||
func (err error, pg *f5.Pagination) {
|
||||
var lastSinceId int64 = sinceId
|
||||
if err != nil {
|
||||
cb(500, "", lastSinceId, []string{})
|
||||
}
|
||||
guildIds := []string{}
|
||||
for pg.Rows.Next() {
|
||||
idx := q5.ToInt64(pg.Rows.GetByName("idx"))
|
||||
guildId := pg.Rows.GetByName("guild_id")
|
||||
if idx > lastSinceId {
|
||||
lastSinceId = idx
|
||||
} else {
|
||||
panic(fmt.Sprintf("guild.AsyncSearch idx error:%s %s", idx, lastSinceId))
|
||||
}
|
||||
if this.GetGuildByGuildId(guildId) != nil {
|
||||
q5.AppendSlice(&guildIds, guildId)
|
||||
}
|
||||
}
|
||||
cb(0, "", lastSinceId, guildIds)
|
||||
})
|
||||
}
|
||||
|
||||
func (this *guildMgr) AsyncGetGuildLogs(string, string, func(int32, string)) {
|
||||
|
@ -692,6 +692,50 @@ func (this *player) CMGuildMembersList(hdr *f5.MsgHdr, msg *cs.CMGuildMembersLis
|
||||
}
|
||||
|
||||
func (this *player) CMSearchGuilds(hdr *f5.MsgHdr, msg *cs.CMSearchGuilds) {
|
||||
rspMsg := new(cs.SMSearchGuilds)
|
||||
q5.NewSlice(&rspMsg.Guilds, 0, 50)
|
||||
GetGuildMgr().AsyncSearch(
|
||||
msg.GetSinceId(),
|
||||
msg.GetName(),
|
||||
func (errCode int32, errMsg string, sinceId int64, guildIds []string) {
|
||||
rspMsg.SinceId = proto.Int64(sinceId)
|
||||
if errCode != 0 {
|
||||
this.SendMsg(rspMsg.Err(1, "server internal error"))
|
||||
return
|
||||
}
|
||||
if len(guildIds) <= 0 {
|
||||
this.SendMsg(rspMsg)
|
||||
return
|
||||
}
|
||||
i := 0
|
||||
f5.NewAsyncTask(
|
||||
func (task* f5.AsyncTask) {
|
||||
doNextFunc := func() {
|
||||
if i + 1 < len(guildIds) {
|
||||
i++
|
||||
task.Continue()
|
||||
} else {
|
||||
this.SendMsg(rspMsg)
|
||||
}
|
||||
}
|
||||
guild := GetGuildMgr().GetGuildByGuildId(guildIds[i])
|
||||
if guild == nil {
|
||||
doNextFunc()
|
||||
} else {
|
||||
pbGuild := new(cs.MFGuild)
|
||||
guild.AsyncFillMFGuild(
|
||||
pbGuild,
|
||||
func (errCode int32, errMsg string) {
|
||||
if errCode != 0 {
|
||||
this.SendMsg(rspMsg.Err(1, "server internal error"))
|
||||
return
|
||||
}
|
||||
q5.AppendSlice(&rspMsg.Guilds, pbGuild)
|
||||
doNextFunc()
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func (this *player) CMGuildLogs(hdr *f5.MsgHdr, msg *cs.CMGuildLogs) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user