user/biz/handle/get.go
timerzz b4448efb2a
Some checks failed
Build image / build (push) Failing after 26s
添加工作流
2025-05-21 12:29:01 +08:00

73 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package handle
import (
"context"
"errors"
"gitea.timerzz.com/onecat/user/biz/model/common"
user_service "gitea.timerzz.com/onecat/user/biz/service"
"github.com/cloudwego/hertz/pkg/app"
)
type UserHandler struct {
userService *user_service.UserService
}
func NewUserHandler(userService *user_service.UserService) *UserHandler {
return &UserHandler{
userService: userService,
}
}
// GetUserByPhone 通过手机号获取用户信息
// @Tags 用户模块
// @Summary 获取用户信息接口
// @Description 通过手机号获取用户信息只返回用户的昵称、电话、性别、ID、创建时间和头像
// @Param phone query string true "用户手机号"
// @Success 200 {object} Response[common.User] "成功响应"
// @Failure 400 {object} Response[string] "请求参数错误"
// @Failure 404 {object} Response[string] "用户不存在"
// @Failure 500 {object} Response[string] "服务器内部错误"
// @Security ApiKeyAuth
// @Accept application/json
// @Produce application/json
// @Router /api/v1/user [get]
func (h *UserHandler) GetUserByPhone(ctx context.Context, c *app.RequestContext) {
// 获取请求参数
phone := c.Query("phone")
if phone == "" {
c.JSON(400, Response[string]{
Code: 400,
Message: "手机号不能为空",
Data: "手机号参数缺失",
})
return
}
// 调用服务层获取用户信息
user, err := h.userService.GetUserByPhone(phone)
if err != nil {
code := 500
message := "获取用户信息失败"
if errors.Is(err, user_service.ErrUserNotFound) {
code = 404
message = "用户不存在"
}
c.JSON(code, Response[string]{
Code: code,
Message: message,
Data: err.Error(),
})
return
}
// 返回成功响应
c.JSON(200, Response[common.User]{
Code: 200,
Message: "获取用户信息成功",
Data: *user,
})
}