This commit is contained in:
殷勇 2023-08-25 15:02:15 +08:00
parent 79cd0a6592
commit 8d9bd6bc93
8 changed files with 350 additions and 270 deletions

View File

@ -26,6 +26,7 @@ const (
// im server guild // im server guild
const ( const (
MaxMembers = 10
MaxPendingReqs = 10 MaxPendingReqs = 10
DefaultLogs = 20 DefaultLogs = 20
LogTypeApprove = 1 LogTypeApprove = 1
@ -37,4 +38,8 @@ const (
GuildMemberLevelLeader = 1 // 成员等级, 会长 GuildMemberLevelLeader = 1 // 成员等级, 会长
GuildMemberLevelCadre = 2 // 成员等级, 干部 GuildMemberLevelCadre = 2 // 成员等级, 干部
GuildMemberLevelDefault = 3 // 成员等级, 普通成员 GuildMemberLevelDefault = 3 // 成员等级, 普通成员
PendingReqIsJoinGuildStatusDefault = 0 // 等待验证请求状态, 0 等待审核
PendingReqIsJoinGuildStatusJoined = 1 // 等待验证请求状态, 1 已加入
PendingReqIsJoinGuildStatusReject = 2 // 等待验证请求状态, 2 拒绝
PendingReqIsJoinGuildStatusDisband = 3 // 等待验证请求状态, 3 公会已解散
) )

View File

@ -1950,7 +1950,7 @@ type SMGuildInfo struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
CurrGuild *MFGuild `protobuf:"bytes,1,opt,name=curr_guild,json=currGuild" json:"curr_guild,omitempty"` Guild *MFGuild `protobuf:"bytes,1,opt,name=guild" json:"guild,omitempty"`
RandomGuilds []*MFGuild `protobuf:"bytes,2,rep,name=random_guilds,json=randomGuilds" json:"random_guilds,omitempty"` RandomGuilds []*MFGuild `protobuf:"bytes,2,rep,name=random_guilds,json=randomGuilds" json:"random_guilds,omitempty"`
} }
@ -1986,9 +1986,9 @@ func (*SMGuildInfo) Descriptor() ([]byte, []int) {
return file_cs_proto_proto_rawDescGZIP(), []int{35} return file_cs_proto_proto_rawDescGZIP(), []int{35}
} }
func (x *SMGuildInfo) GetCurrGuild() *MFGuild { func (x *SMGuildInfo) GetGuild() *MFGuild {
if x != nil { if x != nil {
return x.CurrGuild return x.Guild
} }
return nil return nil
} }
@ -3244,94 +3244,94 @@ var file_cs_proto_proto_rawDesc = []byte{
0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d,
0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x43, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f,
0x22, 0x6b, 0x0a, 0x0b, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x62, 0x0a, 0x0b, 0x53, 0x4d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12,
0x2a, 0x0a, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x21, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b,
0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x67, 0x75, 0x69,
0x52, 0x09, 0x63, 0x75, 0x72, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x0d, 0x72, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x0d, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x67, 0x75, 0x69,
0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d,
0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x0c, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x75,
0x0c, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x23, 0x0a, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x23, 0x0a, 0x0d, 0x43, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x0d, 0x43, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x12, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x0d, 0x53, 0x4d, 0x43,
0x6d, 0x65, 0x22, 0x43, 0x0a, 0x0d, 0x53, 0x4d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75,
0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17,
0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x0e, 0x43, 0x4d, 0x41, 0x70, 0x70,
0x6c, 0x79, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69,
0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69,
0x6c, 0x64, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x0e, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54,
0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22,
0x58, 0x0a, 0x09, 0x43, 0x4d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08,
0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,
0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x09, 0x53, 0x4d, 0x41,
0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22,
0x57, 0x0a, 0x08, 0x43, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67,
0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67,
0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63,
0x61, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x08, 0x53, 0x4d, 0x52, 0x65,
0x6a, 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x29, 0x0a,
0x0c, 0x43, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a,
0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x0c, 0x53, 0x4d, 0x4c, 0x65,
0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f,
0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73,
0x67, 0x22, 0x58, 0x0a, 0x0f, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12,
0x2a, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x69, 0x73, 0x6d, 0x69,
0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0f, 0x53,
0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17,
0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x58, 0x0a, 0x0f, 0x43, 0x4d, 0x50, 0x72, 0x6f,
0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75,
0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75,
0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x2b,
0x10, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x0a, 0x0e, 0x43, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64,
0x64, 0x22, 0x2a, 0x0a, 0x0f, 0x53, 0x4d, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x0e, 0x53,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x55, 0x0a, 0x4d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x17, 0x0a,
0x0e, 0x43, 0x4d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x58, 0x0a, 0x09, 0x43, 0x4d, 0x41, 0x70, 0x70, 0x72,
0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x6f, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18,
0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x30,
0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f,
0x6e, 0x74, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x0e, 0x53, 0x4d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x70,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x24, 0x0a, 0x09, 0x53, 0x4d, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x17, 0x0a,
0x26, 0x0a, 0x09, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x57, 0x0a, 0x08, 0x43, 0x4d, 0x52, 0x65, 0x6a, 0x65,
0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x09, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x63, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x62, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x30, 0x0a,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x2a, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75,
0x0e, 0x43, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x70, 0x70,
0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22,
0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x35, 0x0a, 0x0e, 0x53, 0x4d, 0x53, 0x23, 0x0a, 0x08, 0x53, 0x4d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x65,
0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x67, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72,
0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x29, 0x0a, 0x0c, 0x43, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47,
0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64,
0x22, 0x90, 0x01, 0x0a, 0x07, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22,
0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x27, 0x0a, 0x0c, 0x53, 0x4d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12,
0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x58, 0x0a, 0x0f, 0x43, 0x4d, 0x44, 0x69,
0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x67,
0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67,
0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73,
0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x52, 0x10, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x65, 0x72, 0x73, 0x2a, 0x22, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0f, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x4d,
0x65, 0x12, 0x14, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67,
0x6e, 0x10, 0xd1, 0xa2, 0xd5, 0xc4, 0x07, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x58,
0x0a, 0x0f, 0x43, 0x4d, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10,
0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0f, 0x53, 0x4d, 0x50, 0x72,
0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x65,
0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72,
0x72, 0x4d, 0x73, 0x67, 0x22, 0x55, 0x0a, 0x0e, 0x43, 0x4d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49,
0x64, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x6d, 0x6f,
0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x0e, 0x53,
0x4d, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x0a,
0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x26, 0x0a, 0x09, 0x43, 0x4d, 0x44, 0x69, 0x73, 0x62,
0x61, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x24,
0x0a, 0x09, 0x53, 0x4d, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x65,
0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72,
0x72, 0x4d, 0x73, 0x67, 0x22, 0x2a, 0x0a, 0x0e, 0x43, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64,
0x22, 0x35, 0x0a, 0x0e, 0x53, 0x4d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x47, 0x75, 0x69, 0x6c,
0x64, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x73, 0x2e, 0x4d, 0x46, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52,
0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x07, 0x4d, 0x46, 0x47, 0x75,
0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12,
0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78,
0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2a, 0x22, 0x0a, 0x0a, 0x43, 0x6f,
0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x65, 0x12, 0x14, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0xd1, 0xa2, 0xd5, 0xc4, 0x07, 0x42, 0x06,
0x5a, 0x04, 0x2e, 0x3b, 0x63, 0x73,
} }
var ( var (
@ -3411,7 +3411,7 @@ var file_cs_proto_proto_goTypes = []interface{}{
var file_cs_proto_proto_depIdxs = []int32{ var file_cs_proto_proto_depIdxs = []int32{
34, // 0: cs.SMSearchUser.users:type_name -> cs.MFUser 34, // 0: cs.SMSearchUser.users:type_name -> cs.MFUser
34, // 1: cs.SMListFriend.users:type_name -> cs.MFUser 34, // 1: cs.SMListFriend.users:type_name -> cs.MFUser
57, // 2: cs.SMGuildInfo.curr_guild:type_name -> cs.MFGuild 57, // 2: cs.SMGuildInfo.guild:type_name -> cs.MFGuild
57, // 3: cs.SMGuildInfo.random_guilds:type_name -> cs.MFGuild 57, // 3: cs.SMGuildInfo.random_guilds:type_name -> cs.MFGuild
57, // 4: cs.SMSearchGuilds.guilds:type_name -> cs.MFGuild 57, // 4: cs.SMSearchGuilds.guilds:type_name -> cs.MFGuild
5, // [5:5] is the sub-list for method output_type 5, // [5:5] is the sub-list for method output_type

View File

@ -1,6 +1,8 @@
package main package main
import "errors" import (
"fmt"
)
// GuildMember 公会成员 // GuildMember 公会成员
type GuildMember struct { type GuildMember struct {
@ -38,7 +40,7 @@ func (g *Guild) findMemberIndex(AccountId string) int {
func (g *Guild) GetMember(accountId string) (*GuildMember, error) { func (g *Guild) GetMember(accountId string) (*GuildMember, error) {
index := g.findMemberIndex(accountId) index := g.findMemberIndex(accountId)
if index == -1 { if index == -1 {
return nil, errors.New("member not found") return nil, fmt.Errorf("member[%s] not found", accountId)
} }
return g.Members[index], nil return g.Members[index], nil
@ -53,7 +55,7 @@ func (g *Guild) isMember(accountId string) bool {
// AddMember 添加成员 // AddMember 添加成员
func (g *Guild) AddMember(member *GuildMember) error { func (g *Guild) AddMember(member *GuildMember) error {
if len(g.Members) >= g.MaxMembers { if len(g.Members) >= g.MaxMembers {
return errors.New("guild is full") return fmt.Errorf("guild is full")
} }
g.Members = append(g.Members, member) g.Members = append(g.Members, member)
return nil return nil
@ -62,12 +64,12 @@ func (g *Guild) AddMember(member *GuildMember) error {
// RemoveMember 移除成员 // RemoveMember 移除成员
func (g *Guild) RemoveMember(accountId string) error { func (g *Guild) RemoveMember(accountId string) error {
if accountId == g.LeaderId { if accountId == g.LeaderId {
return errors.New("cannot remove leader") return fmt.Errorf("cannot remove leader")
} }
index := g.findMemberIndex(accountId) index := g.findMemberIndex(accountId)
if index == -1 { if index == -1 {
return errors.New("member not found") return fmt.Errorf("member not found")
} }
//g.Members = append(g.Members[:index], g.Members[index+1:]...) //g.Members = append(g.Members[:index], g.Members[index+1:]...)

View File

@ -2,7 +2,6 @@ package main
import ( import (
"f5" "f5"
"fmt"
"q5" "q5"
) )
@ -22,7 +21,7 @@ func (gm *GuildMgr) loadGuildFromDB() {
} }
func (gm *GuildMgr) loadGuildFromDBResult(err error, rows *f5.DataSet) { func (gm *GuildMgr) loadGuildFromDBResult(err error, rows *f5.DataSet) {
if err != nil { if err != nil {
fmt.Printf("loadGuildFromDBResult err:%v \n", err) f5.GetSysLog().Info("loadGuildFromDBResult err:%v \n", err)
return return
} }
for rows.Next() { for rows.Next() {
@ -48,7 +47,6 @@ func (gm *GuildMgr) loadGuildFromDBResult(err error, rows *f5.DataSet) {
// init pendingReqs // init pendingReqs
gm.pendingReqs[guildId] = make(map[string]bool) gm.pendingReqs[guildId] = make(map[string]bool)
} }
fmt.Printf("loadGuildFromDB finished guilds:%d\n", len(gm.Guilds))
} }
// loadGuildMemberFromDB 加载公会成员 // loadGuildMemberFromDB 加载公会成员
@ -67,7 +65,7 @@ func (gm *GuildMgr) loadGuildMemberFromDB() {
} }
func (gm *GuildMgr) loadGuildMemberFromDBResult(err error, rows *f5.DataSet) { func (gm *GuildMgr) loadGuildMemberFromDBResult(err error, rows *f5.DataSet) {
if err != nil { if err != nil {
fmt.Printf("loadGuildFromDBResult err:%v \n", err) f5.GetSysLog().Info("loadGuildMemberFromDBResult err:%v \n", err)
return return
} }
for rows.Next() { for rows.Next() {
@ -97,7 +95,7 @@ func (gm *GuildMgr) loadGuildMemberFromDBResult(err error, rows *f5.DataSet) {
func (gm *GuildMgr) loadPendingReqsFromDB() { func (gm *GuildMgr) loadPendingReqsFromDB() {
fields := []string{"guild_id", "account_id"} fields := []string{"guild_id", "account_id"}
where := [][]string{ where := [][]string{
{"is_join_guild", "0"}, {"is_join_guild", q5.ToString(PendingReqIsJoinGuildStatusDefault)},
} }
f5.GetJsStyleDb().Select( f5.GetJsStyleDb().Select(
FRIEND_DB, FRIEND_DB,
@ -109,7 +107,7 @@ func (gm *GuildMgr) loadPendingReqsFromDB() {
} }
func (gm *GuildMgr) loadPendingReqsFromDBResult(err error, rows *f5.DataSet) { func (gm *GuildMgr) loadPendingReqsFromDBResult(err error, rows *f5.DataSet) {
if err != nil { if err != nil {
fmt.Printf("loadPendingReqsFromDBResult err:%v \n", err) f5.GetSysLog().Info("loadPendingReqsFromDBResult err:%v \n", err)
return return
} }
for rows.Next() { for rows.Next() {
@ -123,6 +121,55 @@ func (gm *GuildMgr) loadPendingReqsFromDBResult(err error, rows *f5.DataSet) {
} }
} }
// loadGuildLogsFromDB 加载公会日志
func (gm *GuildMgr) loadGuildLogsFromDB() {
var perPage int32 = 10
var page int32 = 1
sql := "SELECT `guild_id`, `account_id`, `log_type`, `content` FROM `t_guild_logs`"
var params []string
var filter f5.DbQueryFilter
orderBy := "ORDER BY `createtime` DESC"
f5.GetJsStyleDb().PageQuery(
FRIEND_DB,
perPage,
page,
sql,
params,
filter,
orderBy,
gm.loadGuildLogsFromDBResult,
)
}
func (gm *GuildMgr) loadGuildLogsFromDBResult(err error, pagination *f5.Pagination) {
if err != nil {
f5.GetSysLog().Info("loadPendingReqsFromDBResult err:%v \n", err)
return
}
//total := pagination.Total
var (
guildId int64
accountId string
logType uint16
content string
)
gm.Logs[guildId] = make([]*GuildLog, DefaultLogs)
for pagination.Rows.Next() {
guildId = q5.ToInt64(*pagination.Rows.GetByIndex(0))
accountId = q5.ToString(*pagination.Rows.GetByIndex(1))
logType = uint16(q5.ToInt32(*pagination.Rows.GetByIndex(2)))
content = q5.ToString(*pagination.Rows.GetByIndex(3))
guildLog := &GuildLog{
GuildId: guildId,
AccountId: accountId,
LogType: logType,
Content: content,
}
gm.Logs[guildId] = append(gm.Logs[guildId], guildLog)
}
}
// createGuildDB 创建公会 // createGuildDB 创建公会
func (gm *GuildMgr) createGuildDB(g *Guild) { func (gm *GuildMgr) createGuildDB(g *Guild) {
fields := [][]string{ fields := [][]string{
@ -137,10 +184,10 @@ func (gm *GuildMgr) createGuildDB(g *Guild) {
fields, fields,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}, },
) )
} }
@ -160,7 +207,7 @@ func (gm *GuildMgr) updateGuild(g *Guild, fields [][]string) {
} }
// insertPendingReqs 添加申请加入公会记录, 存在则更新记录 // insertPendingReqs 添加申请加入公会记录, 存在则更新记录
func (gm *GuildMgr) upsertPendingReqs(guildId int64, accountId string, isJoinGuild string) { func (gm *GuildMgr) upsertPendingReqs(guildId int64, accountId string, isJoinGuild int) {
where := [][]string{ where := [][]string{
{"guild_id", q5.ToString(guildId)}, {"guild_id", q5.ToString(guildId)},
{"account_id", accountId}, {"account_id", accountId},
@ -168,10 +215,10 @@ func (gm *GuildMgr) upsertPendingReqs(guildId int64, accountId string, isJoinGui
insertKv := [][]string{ insertKv := [][]string{
{"guild_id", q5.ToString(guildId)}, {"guild_id", q5.ToString(guildId)},
{"account_id", accountId}, {"account_id", accountId},
{"is_join_guild", "0"}, {"is_join_guild", q5.ToString(isJoinGuild)},
} }
updateKv := [][]string{ updateKv := [][]string{
{"is_join_guild", isJoinGuild}, {"is_join_guild", q5.ToString(isJoinGuild)},
} }
f5.GetJsStyleDb().Upsert( f5.GetJsStyleDb().Upsert(
FRIEND_DB, FRIEND_DB,
@ -181,10 +228,10 @@ func (gm *GuildMgr) upsertPendingReqs(guildId int64, accountId string, isJoinGui
insertKv, insertKv,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}) })
} }
@ -203,18 +250,18 @@ func (gm *GuildMgr) updateAllPendingReqs(guildId int64, isJoinGuild int) {
where, where,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}, },
) )
} }
// updatePendingReqs 更新申请加入公会记录 // updatePendingReqs 更新申请加入公会记录
func (gm *GuildMgr) updatePendingReqs(guildId int64, accountId string, isJoinGuild string) { func (gm *GuildMgr) updatePendingReqs(guildId int64, accountId string, isJoinGuild int) {
fields := [][]string{ fields := [][]string{
{"is_join_guild", isJoinGuild}, {"is_join_guild", q5.ToString(isJoinGuild)},
} }
where := [][]string{ where := [][]string{
{"guild_id", q5.ToString(guildId)}, {"guild_id", q5.ToString(guildId)},
@ -227,10 +274,10 @@ func (gm *GuildMgr) updatePendingReqs(guildId int64, accountId string, isJoinGui
where, where,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}, },
) )
} }
@ -256,10 +303,10 @@ func (gm *GuildMgr) upsertGuildMember(guildId int64, member *GuildMember) {
insertKv, insertKv,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}, },
) )
} }
@ -275,10 +322,10 @@ func (gm *GuildMgr) updateGuildMembers(g *Guild, fields [][]string) {
where, where,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}, },
) )
} }
@ -297,10 +344,10 @@ func (gm *GuildMgr) updateGuildMember(g *Guild, accountId string, fields [][]str
where, where,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}, },
) )
} }
@ -318,9 +365,9 @@ func (gm *GuildMgr) insertGuildLog(log *GuildLog) {
fields, fields,
func(err error, lastInsertId int64, rowsAffected int64) { func(err error, lastInsertId int64, rowsAffected int64) {
if err != nil { if err != nil {
fmt.Printf("error:%v\n", err) f5.GetSysLog().Info("error:%v\n", err)
} }
fmt.Printf("lastInsertId:%d\n", lastInsertId) f5.GetSysLog().Info("lastInsertId:%d\n", lastInsertId)
fmt.Printf("rowsAffected:%d\n", rowsAffected) f5.GetSysLog().Info("rowsAffected:%d\n", rowsAffected)
}) })
} }

View File

@ -19,45 +19,53 @@ func NewGuildMgr() *GuildMgr {
return &GuildMgr{ return &GuildMgr{
Guilds: make(map[int64]*Guild), Guilds: make(map[int64]*Guild),
pendingReqs: make(map[int64]map[string]bool), pendingReqs: make(map[int64]map[string]bool),
Logs: make(map[int64][]*GuildLog, DefaultLogs), Logs: make(map[int64][]*GuildLog),
} }
} }
func (gm *GuildMgr) init() { func (gm *GuildMgr) init() {
gm.pendingReqs = make(map[int64]map[string]bool) gm.loadFromDB()
}
func (gm *GuildMgr) loadFromDB() {
// 加载公会 // 加载公会
gm.loadGuildFromDB() gm.loadGuildFromDB()
// 加载公会成员 // 加载公会成员
gm.loadGuildMemberFromDB() gm.loadGuildMemberFromDB()
// 加载公会申请者列表 // 加载公会申请者列表
gm.loadPendingReqsFromDB() gm.loadPendingReqsFromDB()
// 加载公会日志
gm.loadGuildLogsFromDB()
} }
// CreateGuild 创建公会 // CreateGuild 创建公会
func (gm *GuildMgr) CreateGuild(name string, leaderID string) (int64, error) { func (gm *GuildMgr) CreateGuild(name string, leaderId string) (int64, error) {
// Check joined guild _, err := gm.checkJoinGuild(leaderId)
otherGuildId, isJoined := gm.checkJoinGuild(leaderID) if err != nil {
if isJoined { return 0, err
errMsg := fmt.Sprintf("Player:%s has joined other guild:%d", leaderID, otherGuildId)
return 0, fmt.Errorf(errMsg)
} }
guildId := f5.GetApp().NewUuid() guildId := f5.GetApp().NewUuid()
if _, exists := gm.Guilds[guildId]; exists { if _, exists := gm.Guilds[guildId]; exists {
return 0, fmt.Errorf("guild already exists") return 0, fmt.Errorf("CreateGuild fail")
} }
maxMembers := 10
guild := &Guild{ guild := &Guild{
GuildId: guildId, GuildId: guildId,
Name: name, Name: name,
LeaderId: leaderID, LeaderId: leaderId,
MaxMembers: maxMembers, MaxMembers: MaxMembers,
} }
gm.createGuildDB(guild)
newMember := GuildMember{AccountId: leaderID, Level: GuildMemberLevelLeader} newMember := GuildMember{AccountId: leaderId, Level: GuildMemberLevelLeader}
_ = guild.AddMember(&newMember) err = guild.AddMember(&newMember)
if err != nil {
return 0, err
}
gm.createGuildDB(guild)
gm.upsertGuildMember(guildId, &newMember) gm.upsertGuildMember(guildId, &newMember)
gm.Guilds[guildId] = guild gm.Guilds[guildId] = guild
return guildId, nil return guildId, nil
@ -68,20 +76,26 @@ func (gm *GuildMgr) ApplyToGuild(guildId int64, applicantAccountId string) error
if _, exists := gm.Guilds[guildId]; !exists { if _, exists := gm.Guilds[guildId]; !exists {
return fmt.Errorf("guild not found") return fmt.Errorf("guild not found")
} }
// check join guild // check join guild
otherGuildId, isJoin := gm.checkJoinGuild(applicantAccountId) _, err := gm.checkJoinGuild(applicantAccountId)
if isJoin { if err != nil {
errMsg := fmt.Sprintf("Player:%s has joined other guild:%d", applicantAccountId, otherGuildId) return err
return fmt.Errorf(errMsg)
} }
guild := gm.Guilds[guildId] guild := gm.Guilds[guildId]
if len(guild.Members) >= guild.MaxMembers { if len(guild.Members) >= guild.MaxMembers {
return fmt.Errorf("guild is full") return fmt.Errorf("guild is full")
} }
// IF exists, then replace it
gm.upsertPendingReqs(guildId, applicantAccountId, "0") // IF exists, then replace it fields `isJoinGuild` is 0
gm.pendingReqs[guildId][applicantAccountId] = true gm.upsertPendingReqs(guildId, applicantAccountId, PendingReqIsJoinGuildStatusDefault)
pendReq, exists := gm.pendingReqs[guildId]
if !exists {
pendReq = make(map[string]bool)
}
pendReq[applicantAccountId] = true
return nil return nil
} }
@ -92,16 +106,20 @@ func (gm *GuildMgr) Approve(guildId int64, operatorAccountId, accountId string)
return fmt.Errorf("guild not found") return fmt.Errorf("guild not found")
} }
// 公会干部及以上仅可操作 operatorMember, err := guild.GetMember(operatorAccountId)
err := gm.checkOperatorPerm(guild, operatorAccountId, GuildMemberLevelCadre)
if err != nil { if err != nil {
return err return err
} }
otherGuildId, isJoin := gm.checkJoinGuild(accountId) // 公会干部及以上仅可操作
if isJoin { err = gm.checkOperatorPerm(operatorMember, GuildMemberLevelCadre)
errMsg := fmt.Sprintf("Player:%s has joined other guild:%d", accountId, otherGuildId) if err != nil {
return fmt.Errorf(errMsg) return err
}
_, err = gm.checkJoinGuild(accountId)
if err != nil {
return err
} }
_, exists = gm.pendingReqs[guildId][accountId] _, exists = gm.pendingReqs[guildId][accountId]
@ -114,12 +132,13 @@ func (gm *GuildMgr) Approve(guildId int64, operatorAccountId, accountId string)
if err != nil { if err != nil {
return err return err
} }
gm.upsertGuildMember(guildId, &newMember)
delete(gm.pendingReqs[guildId], accountId)
gm.updatePendingReqs(guildId, accountId, "1")
logContent := fmt.Sprintf("Approve[%d-%s-%s]", guildId, operatorAccountId, accountId) gm.upsertGuildMember(guildId, &newMember)
gm.updatePendingReqs(guildId, accountId, PendingReqIsJoinGuildStatusJoined)
logContent := fmt.Sprintf("Approve[operator:%s]", operatorAccountId)
gm.WriteLog(guildId, accountId, LogTypeApprove, logContent) gm.WriteLog(guildId, accountId, LogTypeApprove, logContent)
delete(gm.pendingReqs[guildId], accountId)
return nil return nil
} }
@ -131,9 +150,8 @@ func (gm *GuildMgr) Reject(guildId int64, applicantAccountId string) error {
return fmt.Errorf("no pending applications for this guild") return fmt.Errorf("no pending applications for this guild")
} }
//delete(gm.pendingReqs[guildId], applicantAccountId) gm.updatePendingReqs(guildId, applicantAccountId, PendingReqIsJoinGuildStatusReject)
gm.pendingReqs[guildId][applicantAccountId] = false delete(gm.pendingReqs[guildId], applicantAccountId)
gm.updatePendingReqs(guildId, applicantAccountId, "2")
return nil return nil
} }
@ -157,7 +175,7 @@ func (gm *GuildMgr) JoinGuild(guildId int64, accountId string) error {
gm.upsertGuildMember(guildId, &newMember) gm.upsertGuildMember(guildId, &newMember)
delete(gm.pendingReqs[guildId], accountId) delete(gm.pendingReqs[guildId], accountId)
gm.updatePendingReqs(guildId, accountId, "1") gm.updatePendingReqs(guildId, accountId, PendingReqIsJoinGuildStatusJoined)
return nil return nil
} }
@ -199,21 +217,27 @@ func (gm *GuildMgr) DismissMember(guildId int64, operatorAccountId, accountId st
return fmt.Errorf("cannot dismiss the leader") return fmt.Errorf("cannot dismiss the leader")
} }
// 公会干部及以上仅可操作 if operatorAccountId == accountId {
err := gm.checkOperatorPerm(guild, operatorAccountId, GuildMemberLevelCadre) return fmt.Errorf("cannot dismiss yourself")
}
operatorMember, err := guild.GetMember(operatorAccountId)
if err != nil { if err != nil {
return err return err
} }
if operatorAccountId == accountId { // 公会干部及以上仅可操作
return fmt.Errorf("member not dismiss") err = gm.checkOperatorPerm(operatorMember, GuildMemberLevelCadre)
if err != nil {
return err
} }
dismissMember, err := guild.GetMember(accountId) dismissMember, err := guild.GetMember(accountId)
if err != nil { if err != nil {
return fmt.Errorf("member not found in the guild") return fmt.Errorf("member not found in the guild")
} }
if dismissMember.Level <= 2 {
if dismissMember.Level <= operatorMember.Level {
return fmt.Errorf("no permission") return fmt.Errorf("no permission")
} }
@ -238,16 +262,25 @@ func (gm *GuildMgr) PromoteMember(guildId int64, operatorAccountId, accountId st
return fmt.Errorf("cannot promote the leader") return fmt.Errorf("cannot promote the leader")
} }
// 会长仅可操作 // 会长操作
err := gm.checkOperatorPerm(guild, operatorAccountId, GuildMemberLevelLeader) operatorMember, err := guild.GetMember(operatorAccountId)
if err != nil { if err != nil {
return err return err
} }
err = gm.checkOperatorPerm(operatorMember, GuildMemberLevelLeader)
if err != nil {
return err
}
if operatorAccountId != guild.LeaderId {
return fmt.Errorf("PromoteMember: No, leader")
}
member, err := guild.GetMember(accountId) member, err := guild.GetMember(accountId)
if err != nil { if err != nil {
return fmt.Errorf("member not found in the guild") return fmt.Errorf("member not found in the guild")
} }
if member.Level == GuildMemberLevelCadre { if member.Level == GuildMemberLevelCadre {
return nil return nil
} }
@ -273,11 +306,19 @@ func (gm *GuildMgr) DemoteMember(guildId int64, operatorAccountId, accountId str
return fmt.Errorf("cannot demote the leader") return fmt.Errorf("cannot demote the leader")
} }
// 会长仅可操作 // 会长操作
err := gm.checkOperatorPerm(guild, operatorAccountId, GuildMemberLevelLeader) operatorMember, err := guild.GetMember(operatorAccountId)
if err != nil { if err != nil {
return err return err
} }
err = gm.checkOperatorPerm(operatorMember, GuildMemberLevelLeader)
if err != nil {
return err
}
if operatorAccountId != guild.LeaderId {
return fmt.Errorf("PromoteMember: No, leader")
}
member, err := guild.GetMember(accountId) member, err := guild.GetMember(accountId)
if err != nil { if err != nil {
@ -287,6 +328,7 @@ func (gm *GuildMgr) DemoteMember(guildId int64, operatorAccountId, accountId str
if member.Level == GuildMemberLevelDefault { if member.Level == GuildMemberLevelDefault {
return nil return nil
} }
member.Level = GuildMemberLevelDefault member.Level = GuildMemberLevelDefault
fields := [][]string{{"level", q5.ToString(GuildMemberLevelDefault)}} fields := [][]string{{"level", q5.ToString(GuildMemberLevelDefault)}}
gm.updateGuildMember(guild, member.AccountId, fields) gm.updateGuildMember(guild, member.AccountId, fields)
@ -304,13 +346,11 @@ func (gm *GuildMgr) Disband(guildId int64, accountId string) error {
return fmt.Errorf("guild not found") return fmt.Errorf("guild not found")
} }
// 会长可操作 // 会长可操作
if accountId != guild.LeaderId { if accountId != guild.LeaderId {
return fmt.Errorf("cannot disband guild") return fmt.Errorf("cannot disband guild")
} }
guildName := guild.Name guildName := guild.Name
guild.Members = nil
updateFields := [][]string{ updateFields := [][]string{
{"is_deleted", q5.ToString(1)}, {"is_deleted", q5.ToString(1)},
@ -320,11 +360,11 @@ func (gm *GuildMgr) Disband(guildId int64, accountId string) error {
fields := [][]string{{"is_leave_guild", q5.ToString(1)}} fields := [][]string{{"is_leave_guild", q5.ToString(1)}}
gm.updateGuildMembers(guild, fields) gm.updateGuildMembers(guild, fields)
isJoinGuild := 3 gm.updateAllPendingReqs(guildId, PendingReqIsJoinGuildStatusDisband)
gm.updateAllPendingReqs(guildId, isJoinGuild)
// 确保在删除之前没有其他地方引用了公会对象的指针, 以避免空指针异常 guild.Members = nil
gm.Guilds[guildId] = nil gm.Guilds[guildId] = nil
gm.pendingReqs[guildId] = nil gm.pendingReqs[guildId] = nil
gm.Logs[guildId] = nil gm.Logs[guildId] = nil
delete(gm.Guilds, guildId) delete(gm.Guilds, guildId)
@ -409,6 +449,13 @@ func (gm *GuildMgr) GetGuildByAccountId(accountId string) *Guild {
return nil return nil
} }
func (gm *GuildMgr) getGuild(guildId int64) *Guild {
if guild, ok := gm.Guilds[guildId]; ok {
return guild
}
return nil
}
// Info 工会信息 // Info 工会信息
func (gm *GuildMgr) Info(accountId string) (*Guild, map[string]bool, []*GuildLog) { func (gm *GuildMgr) Info(accountId string) (*Guild, map[string]bool, []*GuildLog) {
guild := gm.GetGuildByAccountId(accountId) guild := gm.GetGuildByAccountId(accountId)
@ -423,27 +470,20 @@ func (gm *GuildMgr) Info(accountId string) (*Guild, map[string]bool, []*GuildLog
return guild, pendingReqs, guildLogs return guild, pendingReqs, guildLogs
} }
func (gm *GuildMgr) checkOperatorPerm(guild *Guild, operatorAccountId string, level int) error { func (gm *GuildMgr) checkOperatorPerm(operatorMember *GuildMember, level int) error {
operatorMember, err := guild.GetMember(operatorAccountId)
if err != nil {
//return fmt.Errorf("checkOperatorPerm: no member")
return fmt.Errorf("checkOperatorPerm: no member[%s]", operatorAccountId)
}
if operatorMember.Level > level { if operatorMember.Level > level {
return fmt.Errorf("checkOperatorPerm: no permission[%s-%d]", operatorAccountId, operatorMember.Level) return fmt.Errorf("checkOperatorPerm: no permission[%s-%d]", operatorMember.AccountId, operatorMember.Level)
} }
return nil return nil
} }
func (gm *GuildMgr) checkJoinGuild(accountId string) (int64, bool) { func (gm *GuildMgr) checkJoinGuild(accountId string) (bool, error) {
for guildId, guild := range gm.Guilds { guild := gm.GetGuildByAccountId(accountId)
for _, member := range guild.Members { if guild != nil {
if accountId == member.AccountId { errMsg := fmt.Sprintf("Player:%s has joined other GuildId:%d", accountId, guild.GuildId)
return guildId, true return true, fmt.Errorf(errMsg)
} }
} return false, nil
}
return 0, false
} }
func containsSubstring(s, substr string) bool { func containsSubstring(s, substr string) bool {

View File

@ -1,56 +1,49 @@
package main package main
import ( import (
"f5"
"fmt" "fmt"
"q5"
"testing" "testing"
) )
func TestGuild(t *testing.T) { var (
guildMgr := NewGuildMgr() leaderId = "6513_2006_test134345"
leaderID := "apple" member1Id = "6513_2006_111"
memberID := "sony" member2Id = "6513_2006_222"
)
guildID, err := guildMgr.CreateGuild("GuildWorld", leaderID) var newGuildId int64 = 1148210928160867328
func TestCreateGuild(t *testing.T) {
f5.TestRun(app)
guildMgr := NewGuildMgr()
guildName := randomGuildName()
guildId, err := guildMgr.CreateGuild(guildName, leaderId)
if err != nil { if err != nil {
fmt.Println("Error:", err) fmt.Println("Error:", err)
return return
} }
fmt.Println("Created guild:", guildID)
err = guildMgr.ApplyToGuild(guildID, memberID) newGuildId = guildId
fmt.Println("Created guild:", guildId)
}
func TestGuildMember(t *testing.T) {
f5.TestRun(app)
if newGuildId <= 0 {
t.Errorf("guildId error: %v", newGuildId)
}
err := guildMgr.ApplyToGuild(newGuildId, member1Id)
if err != nil { if err != nil {
fmt.Println("Error:", err) t.Errorf("Error:%s", err)
return return
} }
fmt.Println("Applied to guild") fmt.Println("Applied to guild")
}
err = guildMgr.Approve(guildID, memberID)
if err != nil { func randomGuildName() string {
fmt.Println("Error:", err) return q5.RandomString(6)
return
}
fmt.Println("Approved application")
err = guildMgr.PromoteMember(guildID, memberID, memberID)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Promoted member")
err = guildMgr.LeaveGuild(guildID, memberID)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Left guild")
err = guildMgr.DismissMember(guildID, memberID, memberID)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Dismissed member")
fmt.Println("Guild logs:", guildMgr.Logs)
} }

View File

@ -3,7 +3,6 @@ package main
import ( import (
"cs" "cs"
"f5" "f5"
"fmt"
"q5" "q5"
) )
@ -230,7 +229,12 @@ func (p *Player) CMFriendInfo(hdr *f5.MsgHdr, msg *cs.CMFriendInfo) {
func (p *Player) CMGuildInfo(hdr *f5.MsgHdr, msg *cs.CMGuildInfo) { func (p *Player) CMGuildInfo(hdr *f5.MsgHdr, msg *cs.CMGuildInfo) {
rspMsg := new(cs.SMGuildInfo) rspMsg := new(cs.SMGuildInfo)
g := guildMgr.GetGuildByAccountId(p.accountId) g := guildMgr.GetGuildByAccountId(p.accountId)
if g != nil { if g == nil {
rspMsg.Guild = nil
rspMsg.RandomGuilds = p.FillGuild(guildMgr.RandomGuilds())
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
return
}
members := q5.ToInt32(len(g.Members)) members := q5.ToInt32(len(g.Members))
maxMembers := q5.ToInt32(g.MaxMembers) maxMembers := q5.ToInt32(g.MaxMembers)
currGuild := &cs.MFGuild{ currGuild := &cs.MFGuild{
@ -240,33 +244,22 @@ func (p *Player) CMGuildInfo(hdr *f5.MsgHdr, msg *cs.CMGuildInfo) {
Members: &members, Members: &members,
MaxMembers: &maxMembers, MaxMembers: &maxMembers,
} }
rspMsg.CurrGuild = currGuild rspMsg.Guild = currGuild
rspMsg.RandomGuilds = nil rspMsg.RandomGuilds = nil
} else {
rspMsg.CurrGuild = nil
rspMsg.RandomGuilds = p.FillGuild(guildMgr.RandomGuilds())
}
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg) wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
} }
// CMCreateGuild 创建公会 // CMCreateGuild 创建公会
func (p *Player) CMCreateGuild(hdr *f5.MsgHdr, msg *cs.CMCreateGuild) { func (p *Player) CMCreateGuild(hdr *f5.MsgHdr, msg *cs.CMCreateGuild) {
rspMsg := new(cs.SMCreateGuild) rspMsg := new(cs.SMCreateGuild)
guildId, err := guildMgr.CreateGuild( guildId, err := guildMgr.CreateGuild(*msg.Name, p.accountId)
*msg.Name,
p.accountId,
)
fmt.Printf("new guildId:%v \n", guildId)
if err != nil { if err != nil {
errMsg := err.Error() errMsg := err.Error()
rspMsg.ErrMsg = &errMsg rspMsg.ErrMsg = &errMsg
f5.GetSysLog().Info("CMCreateGuild err:%s\n", errMsg) f5.GetSysLog().Info("CMCreateGuild err:%s\n", errMsg)
} else { } else {
rspMsg.GuildId = &guildId rspMsg.GuildId = &guildId
} }
wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg) wspListener.sendProxyMsg(hdr.Conn, hdr.SocketHandle, rspMsg)
} }

View File

@ -271,7 +271,7 @@ message CMGuildInfo
// //
message SMGuildInfo message SMGuildInfo
{ {
optional MFGuild curr_guild = 1; optional MFGuild guild = 1;
repeated MFGuild random_guilds = 2; repeated MFGuild random_guilds = 2;
} }