save
This commit is contained in:
parent
b33d728125
commit
bbd2662f7b
@ -59,6 +59,9 @@ const (
|
||||
GuildMemberLevelViceLeader = 2 // 成员等级, 副会长
|
||||
GuildMemberLevelElite = 3 // 成员等级, 精英
|
||||
GuildMemberLevelDefault = 3 // 成员等级, 普通成员
|
||||
JoinCondDefault = 0 // 加入条件 0 需要审批
|
||||
JoinCondFree = 1 // 加入条件 1 可直接加入
|
||||
JoinCondStar = 2 // 加入条件 2 满足星星条件
|
||||
PendingReqIsJoinGuildStatusDefault = 0 // 等待验证请求状态, 0 等待审核
|
||||
PendingReqIsJoinGuildStatusJoined = 1 // 等待验证请求状态, 1 已加入
|
||||
PendingReqIsJoinGuildStatusReject = 2 // 等待验证请求状态, 2 拒绝
|
||||
|
@ -72,12 +72,10 @@ func (g *Guild) IsFull() error {
|
||||
}
|
||||
|
||||
// AddMember 添加成员
|
||||
func (g *Guild) AddMember(member *GuildMember) error {
|
||||
if err := g.IsFull(); err != nil {
|
||||
return err
|
||||
func (g *Guild) AddMember(member *GuildMember) {
|
||||
if err := g.IsFull(); err == nil {
|
||||
g.Members = append(g.Members, member)
|
||||
}
|
||||
g.Members = append(g.Members, member)
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemoveMember 移除成员
|
||||
|
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"f5"
|
||||
"fmt"
|
||||
"q5"
|
||||
)
|
||||
|
||||
@ -192,18 +193,29 @@ func (gm *GuildMgr) createGuildDB(g *Guild) {
|
||||
{"leader_account_id", g.LeaderId},
|
||||
{"max_members", q5.ToString(g.MaxMembers)},
|
||||
}
|
||||
var insertError error
|
||||
var lastInsertId int64
|
||||
var rowsAffected int64
|
||||
|
||||
insertCallback := func(err error, id int64, affectedRows int64) {
|
||||
insertError = err
|
||||
lastInsertId = id
|
||||
rowsAffected = affectedRows
|
||||
}
|
||||
|
||||
f5.GetJsStyleDb().Insert(
|
||||
FRIEND_DB,
|
||||
"t_guild",
|
||||
fields,
|
||||
func(err error, lastInsertId int64, rowsAffected int64) {
|
||||
if err != nil || rowsAffected != 1 {
|
||||
f5.GetSysLog().Info("createGuildDB:%v\n", err)
|
||||
}
|
||||
f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
|
||||
f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
|
||||
},
|
||||
insertCallback,
|
||||
)
|
||||
|
||||
if insertError != nil || rowsAffected != 1 {
|
||||
// 插入失败,处理错误逻辑
|
||||
fmt.Printf("Failed to insert guild: %v", insertError)
|
||||
}
|
||||
|
||||
f5.GetSysLog().Info("Guild inserted successfully. LastInsertId: %d, RowsAffected: %d", lastInsertId, rowsAffected)
|
||||
}
|
||||
|
||||
// updateGuild 更新公会信息
|
||||
|
@ -76,14 +76,11 @@ func (gm *GuildMgr) CreateGuild(name string, leaderId string) (int64, error) {
|
||||
MaxMembers: MaxMembers,
|
||||
}
|
||||
|
||||
newMember := GuildMember{AccountId: leaderId, Level: GuildMemberLevelLeader}
|
||||
err = guild.AddMember(&newMember)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
newMember := &GuildMember{AccountId: leaderId, Level: GuildMemberLevelLeader}
|
||||
guild.Members = append(guild.Members, newMember)
|
||||
|
||||
gm.createGuildDB(guild)
|
||||
gm.upsertGuildMember(guildId, &newMember)
|
||||
gm.upsertGuildMember(guildId, newMember)
|
||||
gm.AddGuild(guildId, guild)
|
||||
|
||||
return guildId, nil
|
||||
@ -96,7 +93,7 @@ func (gm *GuildMgr) ApplyToGuild(guildId int64, applicantAccountId string) error
|
||||
return err
|
||||
}
|
||||
|
||||
// check join guild
|
||||
// 是否加入其他公会
|
||||
_, err = gm.checkJoinGuild(applicantAccountId)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -107,6 +104,19 @@ func (gm *GuildMgr) ApplyToGuild(guildId int64, applicantAccountId string) error
|
||||
return err
|
||||
}
|
||||
|
||||
// 可直接加入
|
||||
if guild.JoinCond == JoinCondFree {
|
||||
gm.JoinGuild(guild, applicantAccountId)
|
||||
return nil
|
||||
}
|
||||
|
||||
if guild.JoinCond == JoinCondStar {
|
||||
var userStar int32 = 200
|
||||
if userStar < guild.JoinCondValue {
|
||||
return fmt.Errorf("joincond error")
|
||||
}
|
||||
}
|
||||
|
||||
// IF exists, then replace it fields `isJoinGuild` is 0
|
||||
gm.upsertPendingReqs(guildId, applicantAccountId, PendingReqIsJoinGuildStatusDefault)
|
||||
pendReq, exists := gm.pendingReqs[guildId]
|
||||
@ -142,19 +152,21 @@ func (gm *GuildMgr) Approve(guildId int64, operatorAccountId, accountId string)
|
||||
return err
|
||||
}
|
||||
|
||||
err = guild.IsFull()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 是否在申请队列中
|
||||
_, exists := gm.pendingReqs[guildId][accountId]
|
||||
if !exists {
|
||||
return fmt.Errorf("no pending applications for this guild")
|
||||
}
|
||||
|
||||
newMember := GuildMember{AccountId: accountId, Level: GuildMemberLevelDefault}
|
||||
err = guild.AddMember(&newMember)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
newMember := &GuildMember{AccountId: accountId, Level: GuildMemberLevelDefault}
|
||||
guild.AddMember(newMember)
|
||||
|
||||
gm.upsertGuildMember(guildId, &newMember)
|
||||
gm.upsertGuildMember(guildId, newMember)
|
||||
gm.updatePendingReqs(guildId, accountId, PendingReqIsJoinGuildStatusJoined)
|
||||
|
||||
logContent := fmt.Sprintf("Approve[operator:%s]", operatorAccountId)
|
||||
@ -178,28 +190,11 @@ func (gm *GuildMgr) Reject(guildId int64, applicantAccountId string) error {
|
||||
}
|
||||
|
||||
// JoinGuild 直接加入公会
|
||||
func (gm *GuildMgr) JoinGuild(guildId int64, accountId string) error {
|
||||
guild, err := gm.GetGuild(guildId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = guild.IsFull()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
func (gm *GuildMgr) JoinGuild(guild *Guild, accountId string) {
|
||||
newMember := GuildMember{AccountId: accountId, Level: GuildMemberLevelDefault}
|
||||
err = guild.AddMember(&newMember)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
guild.AddMember(&newMember)
|
||||
guildId := guild.GuildId
|
||||
gm.upsertGuildMember(guildId, &newMember)
|
||||
delete(gm.pendingReqs[guildId], accountId)
|
||||
gm.updatePendingReqs(guildId, accountId, PendingReqIsJoinGuildStatusJoined)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// LeaveGuild 离开公会
|
||||
|
Loading…
x
Reference in New Issue
Block a user