测试
This commit is contained in:
parent
79cd0a6592
commit
8d9bd6bc93
@ -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 公会已解散
|
||||||
)
|
)
|
||||||
|
@ -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
|
||||||
|
@ -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:]...)
|
||||||
|
@ -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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -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 {
|
||||||
|
@ -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)
|
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user