Files
chain33-dtalk/service/group/logic/util.go
2022-03-17 15:59:24 +08:00

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
}