95 lines
2.4 KiB
Go
95 lines
2.4 KiB
Go
package logic
|
|
|
|
import (
|
|
xerror "gitlab.33.cn/chat/dtalk/pkg/error"
|
|
pb "gitlab.33.cn/chat/dtalk/service/group/api"
|
|
"gitlab.33.cn/chat/dtalk/service/group/model/biz"
|
|
"strings"
|
|
)
|
|
|
|
func FilteredMemberIds(memberIds []string) []string {
|
|
newMemberIds := make([]string, 0, len(memberIds))
|
|
for _, memberId := range memberIds {
|
|
memberId, err := FilteredMemberId(memberId)
|
|
if err != nil {
|
|
continue
|
|
}
|
|
|
|
newMemberIds = append(newMemberIds, memberId)
|
|
}
|
|
|
|
return newMemberIds
|
|
}
|
|
|
|
func FilteredMemberId(memberId string) (string, error) {
|
|
memberId = strings.TrimSpace(memberId)
|
|
if memberId != "" && len(memberId) < 40 {
|
|
return memberId, nil
|
|
}
|
|
return "", xerror.NewError(xerror.ParamsError)
|
|
}
|
|
|
|
func NewRPCGroupInfo(do *biz.GroupInfo) *pb.GroupBizInfo {
|
|
if do == nil {
|
|
return &pb.GroupBizInfo{}
|
|
}
|
|
|
|
return &pb.GroupBizInfo{
|
|
Id: do.GroupId,
|
|
MarkId: do.GroupMarkId,
|
|
Name: do.GroupName,
|
|
Avatar: do.GroupAvatar,
|
|
MemberNum: do.GroupMemberNum,
|
|
MemberMaximum: do.GroupMaximum,
|
|
Introduce: do.GroupIntroduce,
|
|
Status: pb.GroupStatus(do.GroupStatus),
|
|
OwnerId: do.GroupOwnerId,
|
|
CreateTime: do.GroupCreateTime,
|
|
UpdateTime: do.GroupUpdateTime,
|
|
JoinType: pb.GroupJoinType(do.GroupJoinType),
|
|
MuteType: pb.GroupMuteType(do.GroupMuteType),
|
|
FriendType: pb.GroupFriendType(do.GroupFriendType),
|
|
MuteNum: do.MuteNum,
|
|
AdminNum: do.AdminNum,
|
|
AESKey: do.AESKey,
|
|
PubName: do.GroupPubName,
|
|
Type: pb.GroupType(do.GroupType),
|
|
Owner: nil,
|
|
Person: nil,
|
|
Members: nil,
|
|
}
|
|
}
|
|
|
|
func NewRPCGroupInfos(dos []*biz.GroupInfo) []*pb.GroupBizInfo {
|
|
dtos := make([]*pb.GroupBizInfo, 0, len(dos))
|
|
for _, do := range dos {
|
|
dtos = append(dtos, NewRPCGroupInfo(do))
|
|
}
|
|
|
|
return dtos
|
|
}
|
|
|
|
func NewRPCGroupMemberInfo(do *biz.GroupMember) *pb.GroupMemberBizInfo {
|
|
if do == nil {
|
|
return &pb.GroupMemberBizInfo{}
|
|
}
|
|
|
|
return &pb.GroupMemberBizInfo{
|
|
GroupId: do.GroupId,
|
|
Id: do.GroupMemberId,
|
|
Name: do.GroupMemberName,
|
|
Type: pb.GroupMemberType(do.GroupMemberType),
|
|
MuteTime: do.GroupMemberMuteTime,
|
|
JoinTime: do.GroupMemberJoinTime,
|
|
}
|
|
}
|
|
|
|
func NewRPCGroupMemberInfos(dos []*biz.GroupMember) []*pb.GroupMemberBizInfo {
|
|
dtos := make([]*pb.GroupMemberBizInfo, 0, len(dos))
|
|
for _, do := range dos {
|
|
dtos = append(dtos, NewRPCGroupMemberInfo(do))
|
|
}
|
|
|
|
return dtos
|
|
}
|