1
This commit is contained in:
parent
90dfba2737
commit
e8a8a9fe1b
@ -99,7 +99,7 @@ type GuildMgr interface {
|
|||||||
AsyncKickout(string, string, func(int32, string))
|
AsyncKickout(string, string, func(int32, string))
|
||||||
AsyncDisband(string, func(int32, string, []string))
|
AsyncDisband(string, func(int32, string, []string))
|
||||||
AsyncSetGuildJob(string, string, int32, func(int32, 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))
|
AsyncGetGuildLogs(string, string, func(int32, string))
|
||||||
AsyncUpdateGuild(string, map[int32]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)) {
|
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) {
|
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) {
|
func (this *player) CMGuildLogs(hdr *f5.MsgHdr, msg *cs.CMGuildLogs) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user