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)
|
this.delMember(m.memberId)
|
||||||
_guildMgr.delGuildMember(m.memberId)
|
_guildMgr.delGuildMember(m.memberId)
|
||||||
if m.guildJob == constant.GuildMemberLevelLeader {
|
if m.isJob(constant.GuildMemberLevelLeader) {
|
||||||
var nextLeader *member
|
nextLeader := this.chooseLeader()
|
||||||
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 nextLeader != nil {
|
if nextLeader != nil {
|
||||||
f5.GetJsStyleDb().Update(
|
model.GuildMember.SetJob(this.guildId, m.memberId, constant.GuildMemberLevelLeader,
|
||||||
constant.FRIEND_DB,
|
|
||||||
"t_guild_member",
|
|
||||||
[][]string{
|
|
||||||
{"guild_job", q5.ToString(constant.GuildMemberLevelLeader)},
|
|
||||||
},
|
|
||||||
[][]string{
|
|
||||||
{"guild_id", this.guildId},
|
|
||||||
{"member_id", m.memberId},
|
|
||||||
},
|
|
||||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
func (err error, lastInsertId int64, rowsAffected int64) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cb(500, "server internal error")
|
cb(500, "server internal error")
|
||||||
@ -221,15 +201,7 @@ func (this *guild) asyncLeave(accountId string, cb func(int32, string)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if this.GetMemberNum() <= 0 {
|
if this.GetMemberNum() <= 0 {
|
||||||
f5.GetJsStyleDb().Update(
|
model.Guild.Delete(this.guildId,
|
||||||
constant.FRIEND_DB,
|
|
||||||
"t_guild",
|
|
||||||
[][]string{
|
|
||||||
{"deleted", "1"},
|
|
||||||
},
|
|
||||||
[][]string{
|
|
||||||
{"guild_id", this.guildId},
|
|
||||||
},
|
|
||||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
func (err error, lastInsertId int64, rowsAffected int64) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cb(500, "server internal error")
|
cb(500, "server internal error")
|
||||||
@ -276,6 +248,20 @@ func (this *guild) getOwnerId() string {
|
|||||||
return ownerId
|
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) {
|
func (this *guild) delMember(memberId string) {
|
||||||
delete(this.idHash, memberId)
|
delete(this.idHash, memberId)
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,10 @@ func (this *member) init(guild *guild, guildJob int32, memberId string, joinTime
|
|||||||
this.joinTime = joinTime
|
this.joinTime = joinTime
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *member) isJob(guildJob int32) bool {
|
||||||
|
return this.guildJob == guildJob
|
||||||
|
}
|
||||||
|
|
||||||
func newMember() *member {
|
func newMember() *member {
|
||||||
p := new(member)
|
p := new(member)
|
||||||
return p
|
return p
|
||||||
|
@ -28,3 +28,17 @@ func (this *guild) New(guildId string, guildName string, creatorId string, avata
|
|||||||
},
|
},
|
||||||
cb)
|
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)
|
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