package handle import ( "context" "errors" "github.com/cloudwego/hertz/pkg/app" "gitlab.com/kedaya_mp/user/biz/model/common" user_service "gitlab.com/kedaya_mp/user/biz/service" ) 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, }) }