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

48 lines
1.1 KiB
Go

package logic
import (
"context"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
"gitlab.33.cn/chat/dtalk/service/group/model/biz"
"gitlab.33.cn/chat/dtalk/service/group/service"
)
type ForceAddMemberLogic struct {
ctx context.Context
svc *service.Service
}
func NewForceAddMemberLogic(ctx context.Context, svc *service.Service) *ForceAddMemberLogic {
return &ForceAddMemberLogic{
ctx: ctx,
svc: svc,
}
}
// ForceAddMember 多个人加入一个群
// 无视操作者是否在群里, 是否有管理权限, 群人数是否已满
// 强行拉 member 进群
func (l *ForceAddMemberLogic) ForceAddMember(req *pb.ForceAddMemberReq) (*pb.ForceAddMemberResp, error) {
group, err := l.svc.GetGroupInfoByGroupId(l.ctx, req.GroupId)
if err != nil {
return nil, err
}
members := make([]*biz.GroupMember, 0)
_, err = FilteredMemberId(req.MemberId)
members = append(members, &biz.GroupMember{
GroupId: group.GroupId,
GroupMemberId: req.MemberId,
GroupMemberName: "",
GroupMemberType: biz.GroupTypeNormal,
})
err = l.svc.AddMembers(l.ctx, group, members)
if err != nil {
return nil, err
}
return &pb.ForceAddMemberResp{}, nil
}