save
This commit is contained in:
parent
f6730e9cde
commit
c2bfa892b9
@ -16,6 +16,18 @@ const (
|
||||
GAME_ID = 206
|
||||
)
|
||||
|
||||
// im server chat
|
||||
const (
|
||||
kCCBegin = iota
|
||||
kCCWorld = 1
|
||||
kCCPrivate = 2
|
||||
kCCGuild = 3
|
||||
kCCTeam = 4
|
||||
kCCBigHorn = 5
|
||||
kCCLoopMsg = 6
|
||||
kCCEnd
|
||||
)
|
||||
|
||||
// im server friend
|
||||
const (
|
||||
MaxFriendMembers = 200
|
||||
@ -36,21 +48,11 @@ const (
|
||||
OnlineStatus = 1 // 在线状态 在线
|
||||
)
|
||||
|
||||
const (
|
||||
kCCBegin = iota
|
||||
kCCWorld = 1
|
||||
kCCPrivate = 2
|
||||
kCCGuild = 3
|
||||
kCCTeam = 4
|
||||
kCCBigHorn = 5
|
||||
kCCLoopMsg = 6
|
||||
kCCEnd
|
||||
)
|
||||
|
||||
// im server guild
|
||||
const (
|
||||
RandomGuildCount = 10
|
||||
MaxMembers = 30
|
||||
MaxMembersViceLeader = 2
|
||||
MaxPendingReqs = 10
|
||||
DefaultLogs = 20
|
||||
LogTypeApprove = 1 // 公会日志类型, 批准加入
|
||||
@ -105,21 +107,22 @@ const (
|
||||
ERR_CODE_SEARCH_NO_RESULT = 11016
|
||||
|
||||
// Guild
|
||||
ERR_CODE_GUILD_NO_EXISTS = 12001
|
||||
ERR_CODE_JOINED_GUILD = 12002
|
||||
ERR_CODE_CREATE_GUILD_FAIL = 12003
|
||||
ERR_CODE_APPLY_GUILD_FAIL = 12004
|
||||
ERR_CODE_GUILD_MEMBER_NO_EXISTS = 12005
|
||||
ERR_CODE_GUILD_MEMBER_FULL = 12006
|
||||
ERR_CODE_GUILD_PENDING_REQUEST_NO_EXISTS = 12007
|
||||
ERR_CODE_GUILD_NO_LEADER_PERM = 12008
|
||||
ERR_CODE_GUILD_BLOCKED_LEADER = 12009
|
||||
ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM = 12010
|
||||
ERR_CODE_GUILD_DISMISS_MEMBER_NO_PERM = 12011
|
||||
ERR_CODE_CREATE_GUILD_DB_FAIL = 12013
|
||||
ERR_CODE_CREATE_GUILD_MEMBER_DB_FAIL = 12014
|
||||
ERR_CODE_UPDATE_GUILD_DB_FAIL = 12015
|
||||
ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL = 12016
|
||||
ERR_CODE_UPDATE_GUILD_PENDING_REQUEST_DB_FAIL = 12017
|
||||
ERR_CODE_REQUEST_PARAMS_ERROR = 12018
|
||||
ERR_CODE_GUILD_NO_EXISTS = 12001
|
||||
ERR_CODE_JOINED_GUILD = 12002
|
||||
ERR_CODE_CREATE_GUILD_FAIL = 12003
|
||||
ERR_CODE_APPLY_GUILD_FAIL = 12004
|
||||
ERR_CODE_GUILD_MEMBER_NO_EXISTS = 12005
|
||||
ERR_CODE_GUILD_MEMBER_FULL = 12006
|
||||
ERR_CODE_GUILD_PENDING_REQUEST_NO_EXISTS = 12007
|
||||
ERR_CODE_GUILD_NO_LEADER_PERM = 12008
|
||||
ERR_CODE_GUILD_BLOCKED_LEADER = 12009
|
||||
ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM = 12010
|
||||
ERR_CODE_GUILD_DISMISS_MEMBER_NO_PERM = 12011
|
||||
ERR_CODE_CREATE_GUILD_DB_FAIL = 12013
|
||||
ERR_CODE_CREATE_GUILD_MEMBER_DB_FAIL = 12014
|
||||
ERR_CODE_UPDATE_GUILD_DB_FAIL = 12015
|
||||
ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL = 12016
|
||||
ERR_CODE_UPDATE_GUILD_PENDING_REQUEST_DB_FAIL = 12017
|
||||
ERR_CODE_REQUEST_PARAMS_ERROR = 12018
|
||||
ERR_CODE_GUILD_SETMEMBERLEVEL_VICE_LEADER_MAX_LIMIT = 12019
|
||||
)
|
||||
|
@ -46,6 +46,16 @@ func (g *Guild) GetMembersCount() int {
|
||||
return len(g.Members)
|
||||
}
|
||||
|
||||
func (g *Guild) GetMembersViceLeaderCount() int {
|
||||
count := 0
|
||||
for _, member := range g.Members {
|
||||
if member.Level == GuildMemberLevelViceLeader {
|
||||
count++
|
||||
}
|
||||
}
|
||||
return count
|
||||
}
|
||||
|
||||
// GetMember 根据 AccountId 获取成员信息
|
||||
func (g *Guild) GetMember(accountId string) *GuildMember {
|
||||
if member, exists := g.Members[accountId]; exists {
|
||||
|
@ -524,7 +524,7 @@ func (gm *GuildMgr) DismissMember(operatorAccountId, accountId string, cb func(e
|
||||
}
|
||||
|
||||
// SetMemberLevel 设置公会成员等级
|
||||
func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level int32, cb func(errCode int32, errMsg string)) {
|
||||
func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, newLevel int32, cb func(errCode int32, errMsg string)) {
|
||||
// 干部, 精英, 副会长
|
||||
guild := gm.GetGuildByAccountId(operatorAccountId)
|
||||
if guild == nil {
|
||||
@ -544,24 +544,26 @@ func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level in
|
||||
}
|
||||
|
||||
beforeLevel := member.Level
|
||||
if member.Level == level {
|
||||
if member.Level == newLevel {
|
||||
cb(ERR_CODE_GUILD_OPERATOR_MEMBER_NO_PERM, "SetMemberLevel error")
|
||||
return
|
||||
}
|
||||
|
||||
fields := [][]string{{"level", q5.ToString(level)}}
|
||||
// 副会长上限2个
|
||||
if newLevel == GuildMemberLevelViceLeader && guild.GetMembersViceLeaderCount() >= MaxMembersViceLeader {
|
||||
cb(ERR_CODE_GUILD_SETMEMBERLEVEL_VICE_LEADER_MAX_LIMIT, "SetMemberLevel Vice leader max limit")
|
||||
return
|
||||
}
|
||||
|
||||
fields := [][]string{{"level", q5.ToString(newLevel)}}
|
||||
gm.updateGuildMember(guild, member.AccountId, fields, func(err error) {
|
||||
if err != nil {
|
||||
cb(ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
member.Level = level
|
||||
// 转让会长的操作
|
||||
if level == GuildMemberLevelLeader {
|
||||
operatorMember := guild.GetMember(operatorAccountId)
|
||||
operatorMember.Level = GuildMemberLevelDefault
|
||||
|
||||
if newLevel == GuildMemberLevelLeader {
|
||||
guild.LeaderId = member.AccountId
|
||||
updateFields := [][]string{
|
||||
{"leader_account_id", q5.ToString(guild.LeaderId)},
|
||||
@ -571,19 +573,32 @@ func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level in
|
||||
cb(ERR_CODE_UPDATE_GUILD_DB_FAIL, err.Error())
|
||||
return
|
||||
}
|
||||
// 新会长
|
||||
newMemberFields := [][]string{{"level", q5.ToString(member.Level)}}
|
||||
gm.updateGuildMember(guild, member.AccountId, newMemberFields,
|
||||
|
||||
// 旧会长 -> 普通成员
|
||||
oldMember := guild.GetMember(operatorAccountId)
|
||||
oldMemberFields := [][]string{{"level", q5.ToString(GuildMemberLevelDefault)}}
|
||||
gm.updateGuildMember(guild, oldMember.AccountId, oldMemberFields,
|
||||
func(err error) {
|
||||
if err != nil {
|
||||
cb(ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL, err.Error())
|
||||
return
|
||||
}
|
||||
oldMember.Level = GuildMemberLevelDefault
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
logContent := fmt.Sprintf("SetMemberLevel[%d-%s-%s-%d-%d]", guild.GuildId, operatorAccountId, accountId, beforeLevel, level)
|
||||
newMemberFields := [][]string{{"level", q5.ToString(newLevel)}}
|
||||
gm.updateGuildMember(guild, member.AccountId, newMemberFields,
|
||||
func(err error) {
|
||||
if err != nil {
|
||||
cb(ERR_CODE_UPDATE_GUILD_MEMBER_DB_FAIL, err.Error())
|
||||
return
|
||||
}
|
||||
member.Level = newLevel
|
||||
})
|
||||
|
||||
logContent := fmt.Sprintf("SetMemberLevel[%d-%s-%s-%d-%d]", guild.GuildId, operatorAccountId, accountId, beforeLevel, newLevel)
|
||||
gm.WriteLog(guild.GuildId, accountId, LogTypeChangeLevel, logContent)
|
||||
|
||||
// Add event
|
||||
@ -591,7 +606,7 @@ func (gm *GuildMgr) SetMemberLevel(operatorAccountId, accountId string, level in
|
||||
prop["guild_id"] = q5.ToString(guild.GuildId)
|
||||
prop["accountId"] = q5.ToString(accountId)
|
||||
prop["beforeMemberLevel"] = q5.ToString(beforeLevel)
|
||||
prop["afterMemberLevel"] = q5.ToString(level)
|
||||
prop["afterMemberLevel"] = q5.ToString(newLevel)
|
||||
prop["members_count"] = q5.ToString(guild.GetMembersCount())
|
||||
f5.GetTgLog().AddTrackLog(
|
||||
GAME_ID,
|
||||
|
@ -43,6 +43,7 @@ func (this *HandlerMgr) init() {
|
||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetName), PLAYER_HANDLER_ID)
|
||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetAvatar), PLAYER_HANDLER_ID)
|
||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetJoinCond), PLAYER_HANDLER_ID)
|
||||
cs.RegHandlerId(int(cs.CMMessageIdE__CMSetMemberLevel), PLAYER_HANDLER_ID)
|
||||
}
|
||||
|
||||
func (this *HandlerMgr) unInit() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user