1
This commit is contained in:
commit
299ab00b5c
@ -105,6 +105,7 @@ const (
|
||||
ERR_CODE_SEARCH_USERS_DB_FAIL = 11013
|
||||
ERR_CODE_SEARCH_USER_DB_RESULT_IS_NULL = 11014
|
||||
ERR_CODE_SEARCH_USER_DB_FAIL = 11015
|
||||
ERR_CODE_SEARCH_NO_RESULT = 11016
|
||||
|
||||
// Guild
|
||||
ERR_CODE_GUILD_NO_EXISTS = 10001
|
||||
|
@ -141,7 +141,7 @@ func (fm *FriendsMgr) findUsersByUsername(username string, sinceId int64, cb fun
|
||||
return
|
||||
}
|
||||
lastId := sinceId
|
||||
profiles := make([]*PlayerProfile, 0, 20)
|
||||
profiles := make([]*PlayerProfile, 0, MaxSearchResults)
|
||||
for rows.Next() {
|
||||
autoId := q5.ToInt64(*rows.GetByIndex(0))
|
||||
if autoId > lastId {
|
||||
|
@ -393,3 +393,38 @@ func (gm *GuildMgr) insertGuildLog(log *GuildLog) {
|
||||
f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
|
||||
})
|
||||
}
|
||||
|
||||
func (gm *GuildMgr) findGuildIdsByName(sinceId int64, name string, cb func(err error, lastId int64, guildIds []int64)) {
|
||||
fields := []string{"idx", "guild_id"}
|
||||
var where [][]string
|
||||
nameLike := fmt.Sprintf("%%%s%%", name)
|
||||
likeWhere := [][]string{
|
||||
{"name", nameLike},
|
||||
}
|
||||
f5.GetJsStyleDb().SelectLike(
|
||||
FRIEND_DB,
|
||||
"t_guild",
|
||||
fields,
|
||||
where,
|
||||
likeWhere,
|
||||
sinceId,
|
||||
MaxSearchResults,
|
||||
func(err error, rows *f5.DataSet) {
|
||||
if err != nil {
|
||||
cb(err, 0, nil)
|
||||
return
|
||||
}
|
||||
lastId := sinceId
|
||||
ids := make([]int64, 0, MaxSearchResults)
|
||||
for rows.Next() {
|
||||
autoId := q5.ToInt64(*rows.GetByIndex(0))
|
||||
if lastId < autoId {
|
||||
lastId = autoId
|
||||
}
|
||||
guildId := q5.ToInt64(*rows.GetByIndex(1))
|
||||
ids = append(ids, guildId)
|
||||
}
|
||||
cb(nil, lastId, ids)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
@ -884,15 +884,18 @@ func (gm *GuildMgr) GetLogs(guildID int64) []*GuildLog {
|
||||
return gm.guildLogs[guildID]
|
||||
}
|
||||
|
||||
// SearchGuilds 根据关键字搜索公会
|
||||
func (gm *GuildMgr) SearchGuilds(sinceId int64, name string) []*Guild {
|
||||
var results []*Guild
|
||||
for _, guild := range gm.guilds {
|
||||
if containsSubstring(guild.Name, name) {
|
||||
results = append(results, guild)
|
||||
// SearchGuild 根据关键字搜索公会
|
||||
func (gm *GuildMgr) SearchGuild(sinceId int64, name string, cb func(errCode int32, errMsg string, lastId int64, guildIds []int64)) {
|
||||
gm.findGuildIdsByName(sinceId, name, func(err error, lastId int64, guildIds []int64) {
|
||||
if err != nil {
|
||||
cb(ERR_CODE_SEARCH_USERS_DB_FAIL, "SearchUsers username db error", sinceId, guildIds)
|
||||
return
|
||||
}
|
||||
}
|
||||
return results
|
||||
if len(guildIds) <= 0 {
|
||||
cb(ERR_CODE_SEARCH_NO_RESULT, "SearchGuilds result is empty", lastId, guildIds)
|
||||
}
|
||||
cb(0, "OK", lastId, guildIds)
|
||||
})
|
||||
}
|
||||
|
||||
// RandomGuilds 随机10个公会
|
||||
@ -1001,7 +1004,3 @@ func (gm *GuildMgr) GetGuildLogs(guildId int64) []*GuildLog {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func containsSubstring(s, substr string) bool {
|
||||
return len(s) >= len(substr) && s[len(s)-len(substr):] == substr
|
||||
}
|
||||
|
@ -343,7 +343,7 @@ func (p *Player) CMGuildInfo(hdr *f5.MsgHdr, msg *cs.CMGuildInfo) {
|
||||
guild := guildMgr.GetGuildByAccountId(p.accountId)
|
||||
if guild == nil {
|
||||
rspMsg.Guild = nil
|
||||
rspMsg.RandomGuilds = p.FillGuilds(guildMgr.RandomGuilds())
|
||||
rspMsg.RandomGuilds = p.FillMFGuilds(guildMgr.RandomGuilds())
|
||||
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
|
||||
return
|
||||
}
|
||||
@ -628,7 +628,6 @@ func (p *Player) CMGuildMembersList(hdr *f5.MsgHdr, msg *cs.CMGuildMembersList)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
|
||||
}
|
||||
|
||||
@ -636,10 +635,22 @@ func (p *Player) CMGuildMembersList(hdr *f5.MsgHdr, msg *cs.CMGuildMembersList)
|
||||
func (p *Player) CMSearchGuilds(hdr *f5.MsgHdr, msg *cs.CMSearchGuilds) {
|
||||
sinceId := msg.GetSinceId()
|
||||
name := msg.GetName()
|
||||
rspMsg := new(cs.SMSearchGuilds)
|
||||
rspMsg.Guilds = p.FillGuilds(guildMgr.SearchGuilds(sinceId, name))
|
||||
f5.GetSysLog().Info("CMSearchGuilds name[%s], result:%d \n", msg.GetName(), len(rspMsg.Guilds))
|
||||
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
|
||||
guildMgr.SearchGuild(sinceId, name, func(errCode int32, errMsg string, lastId int64, guildIds []int64) {
|
||||
rspMsg := new(cs.SMSearchGuilds)
|
||||
if errCode != 0 {
|
||||
rspMsg.Errcode = &errCode
|
||||
rspMsg.Errmsg = &errMsg
|
||||
} else {
|
||||
for _, guildId := range guildIds {
|
||||
guild := guildMgr.GetGuild(guildId)
|
||||
if guild != nil {
|
||||
rspMsg.Guilds = append(rspMsg.Guilds, p.FillMFGuild(guild))
|
||||
}
|
||||
}
|
||||
}
|
||||
f5.GetSysLog().Info("CMSearchGuilds since:%, name[%s], result:%d \n", sinceId, msg.GetName(), len(rspMsg.Guilds))
|
||||
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
|
||||
})
|
||||
}
|
||||
|
||||
// CMGuildLogs 请求公会日志
|
||||
@ -710,8 +721,8 @@ func (p *Player) FillMFGuild(guild *Guild) *cs.MFGuild {
|
||||
return resGuild
|
||||
}
|
||||
|
||||
// FillGuilds 填充公会列表
|
||||
func (p *Player) FillGuilds(guilds []*Guild) []*cs.MFGuild {
|
||||
// FillMFGuilds 填充公会列表
|
||||
func (p *Player) FillMFGuilds(guilds []*Guild) []*cs.MFGuild {
|
||||
var resGuilds []*cs.MFGuild
|
||||
for _, g := range guilds {
|
||||
guild := p.FillMFGuild(g)
|
||||
|
Loading…
x
Reference in New Issue
Block a user