1
This commit is contained in:
parent
f9697b9178
commit
8f036bfc22
@ -185,30 +185,10 @@ func (this *guild) asyncLeave(accountId string, cb func(int32, string)) {
|
||||
}
|
||||
this.delMember(m.memberId)
|
||||
_guildMgr.delGuildMember(m.memberId)
|
||||
if m.guildJob == constant.GuildMemberLevelLeader {
|
||||
var nextLeader *member
|
||||
this.traverseMembers(
|
||||
func (ele *member) bool {
|
||||
if ele != m {
|
||||
if nextLeader == nil {
|
||||
nextLeader = m
|
||||
} else if ele.guildJob < nextLeader.guildJob {
|
||||
nextLeader = m
|
||||
}
|
||||
}
|
||||
return true
|
||||
})
|
||||
if m.isJob(constant.GuildMemberLevelLeader) {
|
||||
nextLeader := this.chooseLeader()
|
||||
if nextLeader != nil {
|
||||
f5.GetJsStyleDb().Update(
|
||||
constant.FRIEND_DB,
|
||||
"t_guild_member",
|
||||
[][]string{
|
||||
{"guild_job", q5.ToString(constant.GuildMemberLevelLeader)},
|
||||
},
|
||||
[][]string{
|
||||
{"guild_id", this.guildId},
|
||||
{"member_id", m.memberId},
|
||||
},
|
||||
model.GuildMember.SetJob(this.guildId, m.memberId, constant.GuildMemberLevelLeader,
|
||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
||||
if err != nil {
|
||||
cb(500, "server internal error")
|
||||
@ -221,15 +201,7 @@ func (this *guild) asyncLeave(accountId string, cb func(int32, string)) {
|
||||
}
|
||||
}
|
||||
if this.GetMemberNum() <= 0 {
|
||||
f5.GetJsStyleDb().Update(
|
||||
constant.FRIEND_DB,
|
||||
"t_guild",
|
||||
[][]string{
|
||||
{"deleted", "1"},
|
||||
},
|
||||
[][]string{
|
||||
{"guild_id", this.guildId},
|
||||
},
|
||||
model.Guild.Delete(this.guildId,
|
||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
||||
if err != nil {
|
||||
cb(500, "server internal error")
|
||||
@ -276,6 +248,20 @@ func (this *guild) getOwnerId() string {
|
||||
return ownerId
|
||||
}
|
||||
|
||||
func (this *guild) chooseLeader() *member {
|
||||
var nextLeader *member
|
||||
this.traverseMembers(
|
||||
func (ele *member) bool {
|
||||
if nextLeader == nil {
|
||||
nextLeader = ele
|
||||
} else if ele.guildJob < nextLeader.guildJob {
|
||||
nextLeader = ele
|
||||
}
|
||||
return true
|
||||
})
|
||||
return nextLeader
|
||||
}
|
||||
|
||||
func (this *guild) delMember(memberId string) {
|
||||
delete(this.idHash, memberId)
|
||||
}
|
||||
|
@ -17,6 +17,10 @@ func (this *member) init(guild *guild, guildJob int32, memberId string, joinTime
|
||||
this.joinTime = joinTime
|
||||
}
|
||||
|
||||
func (this *member) isJob(guildJob int32) bool {
|
||||
return this.guildJob == guildJob
|
||||
}
|
||||
|
||||
func newMember() *member {
|
||||
p := new(member)
|
||||
return p
|
||||
|
@ -28,3 +28,17 @@ func (this *guild) New(guildId string, guildName string, creatorId string, avata
|
||||
},
|
||||
cb)
|
||||
}
|
||||
|
||||
func (this *guild) Delete(guildId string,
|
||||
cb func (error, int64, int64)) {
|
||||
f5.GetJsStyleDb().Update(
|
||||
constant.FRIEND_DB,
|
||||
"t_guild",
|
||||
[][]string{
|
||||
{"deleted", "1"},
|
||||
},
|
||||
[][]string{
|
||||
{"guild_id", guildId},
|
||||
},
|
||||
cb)
|
||||
}
|
||||
|
@ -52,3 +52,18 @@ func (this *guildMember) Delete(guildId string, memberId string,
|
||||
},
|
||||
cb)
|
||||
}
|
||||
|
||||
func (this *guildMember) SetJob(guildId string, memberId string, guildJob int32,
|
||||
cb func (error, int64, int64)) {
|
||||
f5.GetJsStyleDb().Update(
|
||||
constant.FRIEND_DB,
|
||||
"t_guild_member",
|
||||
[][]string{
|
||||
{"guild_job", q5.ToString(guildJob)},
|
||||
},
|
||||
[][]string{
|
||||
{"guild_id", guildId},
|
||||
{"member_id", memberId},
|
||||
},
|
||||
cb)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user