first commit

This commit is contained in:
2022-03-17 15:59:24 +08:00
commit 2b0debb847
592 changed files with 73946 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
"gitlab.33.cn/utils/go-kit/convert"
)
func (l *GroupLogic) ChangeOwner(req *types.ChangeOwnerReq) (*types.ChangeOwnerResp, error) {
groupId := convert.ToInt64(req.Id)
personId := l.getOpe()
memberId := req.MemberId
_, err := l.svcCtx.GroupClient.ChangeOwner(l.ctx, &pb.ChangeOwnerReq{
GroupId: groupId,
PersonId: personId,
MemberId: memberId,
})
if err != nil {
return nil, err
}
return &types.ChangeOwnerResp{}, nil
}

View File

@@ -0,0 +1,51 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) CreateGroup(req *types.CreateGroupReq) (*types.CreateGroupResp, error) {
name := req.Name
addr := l.getOpe()
owner := &pb.GroupMemberInfo{
Id: addr,
Name: "",
}
members := make([]*pb.GroupMemberInfo, 0, len(req.MemberIds))
for _, memberId := range req.MemberIds {
members = append(members, &pb.GroupMemberInfo{
Id: memberId,
Name: "",
})
}
resp1, err := l.svcCtx.GroupClient.CreateGroup(l.ctx, &pb.CreateGroupReq{
Name: name,
GroupType: pb.GroupType_GROUP_TYPE_NORMAL,
Owner: owner,
Members: members,
})
if err != nil {
return nil, err
}
groupId := resp1.GroupId
resp2, err := l.svcCtx.GroupClient.GetPriGroupInfo(l.ctx, &pb.GetPriGroupInfoReq{
GroupId: groupId,
PersonId: addr,
DisplayNum: int32(1 + len(members)),
})
if err != nil {
return nil, err
}
Group := NewTypesGroupInfo(resp2.Group)
Members := NewTypesGroupMemberInfos(resp2.Group.Members)
return &types.CreateGroupResp{
GroupInfo: Group,
Members: Members,
}, nil
}

View File

@@ -0,0 +1,29 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GetPriGroupInfo(req *types.GetGroupInfoReq) (*types.GetGroupInfoResp, error) {
if req.DisPlayNum == 0 {
req.DisPlayNum = 10
}
resp, err := l.svcCtx.GroupClient.GetPriGroupInfo(l.ctx, &pb.GetPriGroupInfoReq{
GroupId: req.Id,
PersonId: l.getOpe(),
DisplayNum: int32(req.DisPlayNum),
})
if err != nil {
return nil, err
}
Group := NewTypesGroupInfo(resp.Group)
Members := NewTypesGroupMemberInfos(resp.Group.Members)
return &types.GetGroupInfoResp{
GroupInfo: Group,
Members: Members,
}, nil
}

View File

@@ -0,0 +1,23 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GetGroupList(req *types.GetGroupListReq) (*types.GetGroupListResp, error) {
personId := l.getOpe()
resp, err := l.svcCtx.GroupClient.GetGroupList(l.ctx, &pb.GetGroupListReq{
PersonId: personId,
})
if err != nil {
return nil, err
}
Groups := NewTypesGroupInfos(resp.Groups)
return &types.GetGroupListResp{
Groups: Groups,
}, nil
}

View File

@@ -0,0 +1,26 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GetGroupMemberInfo(req *types.GetGroupMemberInfoReq) (*types.GetGroupMemberInfoResp, error) {
groupId := req.Id
memberId := req.MemberId
resp, err := l.svcCtx.GroupClient.GetGroupMemberInfo(l.ctx, &pb.GetGroupMemberInfoReq{
GroupId: groupId,
PersonId: l.getOpe(),
MemberId: memberId,
})
if err != nil {
return nil, err
}
Member := NewTypesGroupMemberInfo(resp.Member)
res := &types.GetGroupMemberInfoResp{}
res.GroupMember = Member
return res, nil
}

View File

@@ -0,0 +1,27 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
"gitlab.33.cn/utils/go-kit/convert"
)
func (l *GroupLogic) GetGroupMemberList(req *types.GetGroupMemberListReq) (*types.GetGroupMemberListResp, error) {
groupId := req.Id
resp, err := l.svcCtx.GroupClient.GetGroupMemberList(l.ctx, &pb.GetGroupMemberListReq{
GroupId: groupId,
PersonId: l.getOpe(),
})
if err != nil {
return nil, err
}
Members := NewTypesGroupMemberInfos(resp.Members)
return &types.GetGroupMemberListResp{
Id: groupId,
IdStr: convert.ToString(groupId),
Members: Members,
}, nil
}

View File

@@ -0,0 +1,19 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GetMuteList(req *types.GetMuteListReq) (*types.GetMuteListResp, error) {
resp, err := l.svcCtx.GroupClient.GetMuteList(l.ctx, &pb.GetMuteListReq{
GroupId: req.Id,
PersonId: l.getOpe(),
})
if err != nil {
return nil, err
}
Members := NewTypesGroupMemberInfos(resp.Members)
return &types.GetMuteListResp{Members: Members}, nil
}

View File

@@ -0,0 +1,21 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GetPubGroupInfo(req *types.GetGroupPubInfoReq) (*types.GetGroupPubInfoResp, error) {
resp, err := l.svcCtx.GroupClient.GetPubGroupInfo(l.ctx, &pb.GetPubGroupInfoReq{
GroupId: req.Id,
PersonId: l.getOpe(),
})
if err != nil {
return nil, err
}
res := &types.GetGroupPubInfoResp{}
Group := NewTypesGroupInfo(resp.Group)
res.GroupInfo = Group
return res, nil
}

View File

@@ -0,0 +1,18 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GroupDisband(req *types.GroupDisbandReq) (*types.GroupDisbandResp, error) {
_, err := l.svcCtx.GroupClient.GroupDisband(l.ctx, &pb.GroupDisbandReq{
GroupId: req.Id,
PersonId: l.getOpe(),
})
if err != nil {
return nil, err
}
return &types.GroupDisbandResp{}, nil
}

View File

@@ -0,0 +1,18 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GroupExit(req *types.GroupExitReq) (*types.GroupExitResp, error) {
_, err := l.svcCtx.GroupClient.GroupExit(l.ctx, &pb.GroupExitReq{
GroupId: req.Id,
PersonId: l.getOpe(),
})
if err != nil {
return nil, err
}
return &types.GroupExitResp{}, nil
}

View File

@@ -0,0 +1,22 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) GroupRemove(req *types.GroupRemoveReq) (*types.GroupRemoveResp, error) {
resp, err := l.svcCtx.GroupClient.GroupRemove(l.ctx, &pb.GroupRemoveReq{
GroupId: req.Id,
PersonId: l.getOpe(),
MemberIds: req.MemberIds,
})
if err != nil {
return nil, err
}
return &types.GroupRemoveResp{
MemberNum: resp.MemberNum,
MemberIds: resp.MemberIds,
}, nil
}

View File

@@ -0,0 +1,25 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
"gitlab.33.cn/utils/go-kit/convert"
)
func (l *GroupLogic) InviteGroupMembers(req *types.InviteGroupMembersReq) (*types.InviteGroupMembersResp, error) {
groupId := req.Id
_, err := l.svcCtx.GroupClient.InviteGroupMembers(l.ctx, &pb.InviteGroupMembersReq{
GroupId: groupId,
InviterId: l.getOpe(),
MemberIds: req.NewMemberIds,
})
if err != nil {
return nil, err
}
return &types.InviteGroupMembersResp{
Id: groupId,
IdStr: convert.ToString(groupId),
}, nil
}

View File

@@ -0,0 +1,25 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
"gitlab.33.cn/utils/go-kit/convert"
)
func (l *GroupLogic) JoinGroup(req *types.JoinGroupReq) (*types.JoinGroupResp, error) {
groupId := req.Id
_, err := l.svcCtx.GroupClient.InviteGroupMembers(l.ctx, &pb.InviteGroupMembersReq{
GroupId: groupId,
InviterId: req.InviterId,
MemberIds: []string{l.getOpe()},
})
if err != nil {
return nil, err
}
return &types.JoinGroupResp{
Id: groupId,
IdStr: convert.ToString(groupId),
}, nil
}

View File

@@ -0,0 +1,96 @@
package logic
import (
"context"
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/svc"
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
"gitlab.33.cn/chat/dtalk/pkg/api"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
"gitlab.33.cn/utils/go-kit/convert"
)
type GroupLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewGroupLogic(ctx context.Context, svcCtx *svc.ServiceContext) GroupLogic {
return GroupLogic{
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *GroupLogic) getOpe() string {
return api.NewAddrWithContext(l.ctx)
}
func NewTypesGroupInfo(do *pb.GroupBizInfo) *types.GroupInfo {
if do == nil {
return &types.GroupInfo{}
}
res := &types.GroupInfo{
Id: do.Id,
IdStr: convert.ToString(do.Id),
MarkId: do.MarkId,
Name: do.Name,
PublicName: do.PubName,
Avatar: do.Avatar,
Introduce: do.Introduce,
Owner: nil,
Person: nil,
MemberNum: do.MemberNum,
Maximum: do.MemberMaximum,
Status: int32(do.Status),
CreateTime: do.CreateTime,
JoinType: int32(do.JoinType),
MuteType: int32(do.MuteType),
FriendType: int32(do.FriendType),
MuteNum: do.MuteNum,
AdminNum: do.AdminNum,
AESKey: do.AESKey,
GroupType: int32(do.GetType()),
}
if do.Owner != nil {
res.Owner = NewTypesGroupMemberInfo(do.Owner)
}
if do.Person != nil {
res.Person = NewTypesGroupMemberInfo(do.Person)
}
return res
}
func NewTypesGroupInfos(dos []*pb.GroupBizInfo) []*types.GroupInfo {
dtos := make([]*types.GroupInfo, 0, len(dos))
for _, do := range dos {
dtos = append(dtos, NewTypesGroupInfo(do))
}
return dtos
}
func NewTypesGroupMemberInfo(do *pb.GroupMemberBizInfo) *types.GroupMember {
if do == nil {
return &types.GroupMember{}
}
return &types.GroupMember{
MemberId: do.Id,
MemberName: do.Name,
MemberType: int32(do.Type),
MemberMuteTime: do.MuteTime,
}
}
func NewTypesGroupMemberInfos(dos []*pb.GroupMemberBizInfo) []*types.GroupMember {
dtos := make([]*types.GroupMember, 0, len(dos))
for _, do := range dos {
dtos = append(dtos, NewTypesGroupMemberInfo(do))
}
return dtos
}

View File

@@ -0,0 +1,25 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
xerror "gitlab.33.cn/chat/dtalk/pkg/error"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) SetAdmin(req *types.SetAdminReq) (*types.SetAdminResp, error) {
if _, ok := pb.GroupMemberType_name[req.MemberType]; !ok {
return nil, xerror.NewError(xerror.ParamsError)
}
_, err := l.svcCtx.GroupClient.SetAdmin(l.ctx, &pb.SetAdminReq{
GroupId: req.Id,
PersonId: l.getOpe(),
MemberId: req.MemberId,
GroupMemberType: pb.GroupMemberType(req.MemberType),
})
if err != nil {
return nil, err
}
return &types.SetAdminResp{}, nil
}

View File

@@ -0,0 +1,19 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) UpdateGroupAvatar(req *types.UpdateGroupAvatarReq) (*types.UpdateGroupAvatarResp, error) {
_, err := l.svcCtx.GroupClient.UpdateGroupAvatar(l.ctx, &pb.UpdateGroupAvatarReq{
GroupId: req.Id,
PersonId: l.getOpe(),
Avatar: req.Avatar,
})
if err != nil {
return nil, err
}
return &types.UpdateGroupAvatarResp{}, nil
}

View File

@@ -0,0 +1,19 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) UpdateGroupFriendType(req *types.UpdateGroupFriendTypeReq) (*types.UpdateGroupFriendTypeResp, error) {
_, err := l.svcCtx.GroupClient.UpdateGroupFriendType(l.ctx, &pb.UpdateGroupFriendTypeReq{
GroupId: req.Id,
PersonId: l.getOpe(),
GroupFriendType: pb.GroupFriendType(req.FriendType),
})
if err != nil {
return nil, err
}
return &types.UpdateGroupFriendTypeResp{}, nil
}

View File

@@ -0,0 +1,19 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) UpdateGroupJoinType(req *types.UpdateGroupJoinTypeReq) (*types.UpdateGroupJoinTypeResp, error) {
_, err := l.svcCtx.GroupClient.UpdateGroupJoinType(l.ctx, &pb.UpdateGroupJoinTypeReq{
GroupId: req.Id,
PersonId: l.getOpe(),
GroupJoinType: pb.GroupJoinType(req.JoinType),
})
if err != nil {
return nil, err
}
return &types.UpdateGroupJoinTypeResp{}, nil
}

View File

@@ -0,0 +1,22 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) UpdateGroupMemberMuteTime(req *types.UpdateGroupMemberMuteTimeReq) (*types.UpdateGroupMemberMuteTimeResp, error) {
resp, err := l.svcCtx.GroupClient.UpdateGroupMemberMuteTime(l.ctx, &pb.UpdateGroupMemberMuteTimeReq{
GroupId: req.Id,
PersonId: l.getOpe(),
MemberIds: req.MemberIds,
MuteTime: req.MuteTime,
})
if err != nil {
return nil, err
}
Members := NewTypesGroupMemberInfos(resp.Members)
return &types.UpdateGroupMemberMuteTimeResp{Members: Members}, nil
}

View File

@@ -0,0 +1,19 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) UpdateGroupMemberName(req *types.UpdateGroupMemberNameReq) (*types.UpdateGroupMemberNameResp, error) {
_, err := l.svcCtx.GroupClient.UpdateGroupMemberName(l.ctx, &pb.UpdateGroupMemberNameReq{
GroupId: req.Id,
PersonId: l.getOpe(),
MemberName: req.MemberName,
})
if err != nil {
return nil, err
}
return &types.UpdateGroupMemberNameResp{}, nil
}

View File

@@ -0,0 +1,19 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) UpdateGroupMuteType(req *types.UpdateGroupMuteTypeReq) (*types.UpdateGroupMuteTypeResp, error) {
_, err := l.svcCtx.GroupClient.UpdateGroupMuteType(l.ctx, &pb.UpdateGroupMuteTypeReq{
GroupId: req.Id,
PersonId: l.getOpe(),
GroupMuteType: pb.GroupMuteType(req.MuteType),
})
if err != nil {
return nil, err
}
return &types.UpdateGroupMuteTypeResp{}, nil
}

View File

@@ -0,0 +1,20 @@
package logic
import (
"gitlab.33.cn/chat/dtalk/gateway/api/v1/internal/types"
pb "gitlab.33.cn/chat/dtalk/service/group/api"
)
func (l *GroupLogic) UpdateGroupName(req *types.UpdateGroupNameReq) (*types.UpdateGroupNameResp, error) {
_, err := l.svcCtx.GroupClient.UpdateGroupName(l.ctx, &pb.UpdateGroupNameReq{
GroupId: req.Id,
PersonId: l.getOpe(),
Name: req.Name,
PublicName: req.PublicName,
})
if err != nil {
return nil, err
}
return &types.UpdateGroupNameResp{}, nil
}