123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package controller
- import (
- "errors"
- "fmt"
- "github.com/gin-gonic/gin"
- "trading-go/model"
- "trading-go/response"
- "trading-go/util"
- )
- // Register
- // @Tags 用户模块
- // @Summary 创建用户
- // @Accept application/json
- // @Produce application/json
- // @param json body model.UserJson true "用户信息"
- // @Success 200 object response.Response
- // @Router /user/register [post]
- func Register(c *gin.Context) {
- var userJ model.UserJson
- err := c.ShouldBindJSON(&userJ)
- fmt.Println(userJ)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- id := util.GetID()
- if !util.CheckMobile(userJ.Phone) {
- msg := util.PhoneFormatError.Error()
- response.Fail(c.Writer, msg, 400)
- return
- }
- user := model.User{
- Uid: uint(id),
- Vid: userJ.Vid,
- Name: userJ.Name,
- Avatar: userJ.Avatar,
- Phone: userJ.Phone,
- }
- err = user.Register()
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- } else {
- msg := "register succeed"
- response.Success(c.Writer, msg, nil)
- }
- }
- // Login
- // @Tags 用户模块
- // @Summary 登录
- // @Produce application/json
- // @param vid formData string false "微信ID"
- // @Success 200 {object} response.Response
- // @Router /user/login [post]
- func Login(c *gin.Context) {
- var user model.User
- user.Vid = c.PostForm("vid")
- 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)
- }
- // ModifyUser
- // @Tags 用户模块
- // @Summary 修改用户信息
- // @Accept application/json
- // @Produce application/json
- // @param json body model.User true "用户信息"
- // @Success 200 {object} response.Response
- // @Router /user/modify [post]
- func ModifyUser(c *gin.Context) {
- var user model.User
- err := c.ShouldBindJSON(&user)
- if err != nil {
- msg := err.Error()
- response.Fail(c.Writer, msg, 500)
- return
- }
- //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)
- }
- }
- // UserInfo
- // @Tags 用户模块
- // @Summary 获取用户信息
- // @Produce application/json
- // @Success 200 {object} response.Response
- // @Router /user/info [get]
- func UserInfo(c *gin.Context) {
- var u model.User
- token := c.GetHeader("Authorization")
- t, claim, err := util.ParseToken(token)
- if err != nil {
- response.Fail(c.Writer, "failed to parse token", 500)
- return
- }
- if !t.Valid {
- response.Fail(c.Writer, "failed", 400)
- return
- }
- u.Uid = claim.UserId
- nu, err := u.Info()
- if err != nil {
- response.Fail(c.Writer, "failed", 500)
- }
- response.Success(c.Writer, "success", nu)
- }
|