package controller import ( "errors" "github.com/gin-gonic/gin" "trading-go/model" "trading-go/response" "trading-go/util" ) // Register // @Tags 用户模块 // @Summary 创建用户 // @param uid formData string false "用户ID" // @param name formData string false "用户名" // @param avatar formData string false "头像" // @Success 200 {string} json{"code","data","message"} // @Router /user/register [post] func Register(c *gin.Context) { var user model.User user.Uid = c.PostForm("uid") user.Name = c.PostForm("name") user.Avatar = c.PostForm("avatar") err := user.Register() if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) } else { msg := "register succeed" response.Success(c.Writer, msg, nil) } } // Login // @Tags 用户模块 // @Summary 登录 // @param uid formData string false "用户ID" // @Success 200 {string} json{"code","data","token"} // @Router /user/login [post] func Login(c *gin.Context) { var user model.User user.Uid = c.PostForm("uid") err, nu := user.Login() if err != nil && err.Error() == "sql: no rows in result set" { err = util.NoSuchUserError msg := err.Error() response.Fail(c.Writer, msg, 403) return } if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } token, err := util.CreatToken(nu.Uid) if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) return } data := gin.H{ "token": token, "user_info": nu, } response.Success(c.Writer, "success", data) } // Modify // @Tags 用户模块 // @Summary 修改用户信息 // @param uid formData string false "用户ID" // @param avatar formData string false "头像" // @param name formData string false "用户名" // @param phone formData string false "电话" // @Success 200 {string} json{"code","data","token"} // @Router /user/modify [post] func Modify(c *gin.Context) { var user model.User user.Uid = c.PostForm("uid") user.Phone = c.PostForm("phone") user.Avatar = c.PostForm("avatar") user.Name = c.PostForm("name") //fmt.Printf("%#v", user) if err := user.SPhone(); err != nil { if errors.Is(err, util.PhoneBeUsed) { response.Fail(c.Writer, err.Error(), 403) } else { response.Fail(c.Writer, err.Error(), 500) } return } err := user.Modify() if err != nil { msg := err.Error() response.Fail(c.Writer, msg, 500) } else { msg := "modify succeed" response.Success(c.Writer, msg, nil) } }