app-cloudep-member-server/internal/logic/account/list_member_logic.go

99 lines
2.3 KiB
Go
Raw Normal View History

2024-12-30 03:58:14 +00:00
package accountlogic
import (
"context"
2025-02-08 01:59:21 +00:00
pb "code.30cm.net/digimon/app-cloudep-member-server/gen_result/pb/member"
2025-02-04 08:58:01 +00:00
"code.30cm.net/digimon/app-cloudep-member-server/internal/svc"
2025-02-08 01:59:21 +00:00
"code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/member"
"code.30cm.net/digimon/app-cloudep-member-server/pkg/domain/usecase"
"google.golang.org/protobuf/proto"
2024-12-30 03:58:14 +00:00
"github.com/zeromicro/go-zero/core/logx"
)
type ListMemberLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewListMemberLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListMemberLogic {
return &ListMemberLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
// ListMember 取得會員列表
2025-02-08 01:59:21 +00:00
func (l *ListMemberLogic) ListMember(in *pb.ListUserInfoReq) (*pb.ListUserInfoResp, error) {
q := usecase.ListUserInfoRequest{
PageSize: in.GetPageSize(),
PageIndex: in.GetPageIndex(),
}
if in.CreateStartTime != nil {
q.CreateStartTime = proto.Int64(in.GetCreateStartTime())
}
if in.CreateEndTime != nil {
q.CreateEndTime = proto.Int64(in.GetCreateEndTime())
}
if in.AlarmType != nil {
a := member.AlarmType(in.GetAlarmType().Number())
q.AlarmCategory = &a
}
if in.Status != nil {
s := member.Status(in.GetStatus().Number())
q.UserStatus = &s
}
members, err := l.svcCtx.AccountUseCase.ListMember(l.ctx, q)
if err != nil {
return nil, err
}
res := make([]*pb.UserInfo, 0, members.Page.Size)
if len(members.Data) == 0 {
return &pb.ListUserInfoResp{
Data: res,
Page: &pb.Pager{
Total: 0,
Size: members.Page.Size,
Index: members.Page.Index,
},
}, nil
}
at := pb.AlarmType(members.Data[0].AlarmCategory)
status := pb.MemberStatus(members.Data[0].UserStatus)
for _, m := range members.Data {
res = append(res, &pb.UserInfo{
Uid: m.UID,
AvatarUrl: m.AvatarURL,
FullName: m.FullName,
NickName: m.Nickname,
GenderCode: m.GenderCode,
Birthday: m.Birthdate,
Address: m.Address,
Email: m.Email,
Phone: m.PhoneNumber,
Language: m.PreferredLanguage,
Currency: m.Currency,
AlarmType: at,
Status: status,
CreateTime: m.CreateTime,
UpdateTime: m.UpdateTime,
})
}
2024-12-30 03:58:14 +00:00
2025-02-08 01:59:21 +00:00
return &pb.ListUserInfoResp{
Data: res,
Page: &pb.Pager{
Total: members.Page.Total,
Size: members.Page.Size,
Index: members.Page.Index,
},
}, nil
2024-12-30 03:58:14 +00:00
}