package user import ( "context" "errors" "fmt" "net/http" "github.com/gin-gonic/gin" "gorm.io/gorm" ) const version = "/api/v1" const group = "/user" type Controller struct { client *gorm.DB } type PostLoginParam struct { Account string `json:"account" binding:"required"` Password string `json:"password" binding:"required"` } func (c *Controller) PostLogin(ctx *gin.Context) { param := &PostLoginParam{} if err := ctx.ShouldBindJSON(¶m); err != nil { fmt.Println("参数解析失败,请确认参数是否为 JSON") fmt.Println(err) } user, err := gorm.G[User](c.client).Where("account = ?", param.Account).First(context.Background()) if errors.Is(err, gorm.ErrRecordNotFound) { fmt.Println("没有找到用户") } else { fmt.Println("查询错误") panic(err) } fmt.Println("接受参数") fmt.Println(user) ctx.JSON(http.StatusOK, gin.H{ "message": "success", }) } func (c *Controller) RegisterRoute(gin *gin.Engine) { group := gin.Group(version).Group(group) group.POST("/login", c.PostLogin) } // New 获取用户模块的控制器 // // 参数 // - gorm.DB 该模块所使用的数据库链接 // // 返回值 // - Controller 控制器的实例指针 func New(client *gorm.DB) *Controller { return &Controller{client} }