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