更新了所有文件中的模块导入路径,将`gitlab.com/kedaya_mp/user`替换为`gitee.com/kedaya_mp/user`,以将项目从GitLab迁移到Gitee平台。
73 lines
1.8 KiB
Go
73 lines
1.8 KiB
Go
package handle
|
||
|
||
import (
|
||
"context"
|
||
"errors"
|
||
|
||
"gitee.com/kedaya_mp/user/biz/model/common"
|
||
user_service "gitee.com/kedaya_mp/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,
|
||
})
|
||
}
|