package user import ( "context" "photography-backend/internal/svc" "photography-backend/internal/types" "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.GetUserListRequest) (resp *types.GetUserListResponse, err error) { // 1. 查询用户列表 users, err := l.svcCtx.UserModel.FindList(l.ctx, req.Page, req.PageSize, req.Keyword) if err != nil { return nil, err } // 2. 统计总数 total, err := l.svcCtx.UserModel.Count(l.ctx, req.Keyword) if err != nil { return nil, err } // 3. 转换数据结构(不返回密码) var userList []types.User for _, user := range users { userList = append(userList, types.User{ Id: user.Id, Username: user.Username, Email: user.Email, Avatar: user.Avatar, Status: int(user.Status), CreatedAt: user.CreatedAt.Unix(), UpdatedAt: user.UpdatedAt.Unix(), }) } // 4. 返回结果 return &types.GetUserListResponse{ BaseResponse: types.BaseResponse{ Code: 200, Message: "查询成功", }, Data: types.UserListData{ PageResponse: types.PageResponse{ Total: total, Page: req.Page, Size: req.PageSize, }, Users: userList, }, }, nil }