Files
sundynix-micro-be/app/system/api/internal/logic/user/getUserListLogic.go
T
2026-05-01 12:56:08 +08:00

57 lines
1.4 KiB
Go

package user
import (
"context"
"sundynix-micro-go/app/system/api/internal/svc"
"sundynix-micro-go/app/system/api/internal/types"
"sundynix-micro-go/app/system/rpc/system"
"github.com/zeromicro/go-zero/core/logx"
)
type GetUserListLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewGetUserListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserListLogic {
return &GetUserListLogic{Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx}
}
func (l *GetUserListLogic) GetUserList(req *types.UserListReq) (resp interface{}, err error) {
rpcResp, err := l.svcCtx.SystemRpc.GetUserList(l.ctx, &system.GetUserListReq{
Current: int32(req.Current),
PageSize: int32(req.PageSize),
Name: req.Name,
Account: req.Account,
})
if err != nil {
return nil, err
}
var list []map[string]interface{}
for _, u := range rpcResp.List {
var roles []map[string]interface{}
for _, r := range u.Roles {
roles = append(roles, map[string]interface{}{
"id": r.Id,
"name": r.Name,
"code": r.Code,
})
}
list = append(list, map[string]interface{}{
"id": u.Id,
"name": u.Name,
"account": u.Account,
"nickName": u.NickName,
"phone": u.Phone,
"gender": u.Gender,
"createdAt": u.CreatedAt,
"roles": roles,
})
}
return map[string]interface{}{"list": list, "total": rpcResp.Total}, nil
}