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