package controllers import ( "git.rosy.net.cn/jx-print/globals" "git.rosy.net.cn/jx-print/model" "git.rosy.net.cn/jx-print/services" "git.rosy.net.cn/jx-print/utils" "github.com/gin-gonic/gin" "net/http" ) //刷新验证码 POST func RefreshCode(c *gin.Context) { utils.Captcha(c, 4) } type GetUsersParam struct { Name string `json:"name" uri:"name"` //用户名 UserID string `json:"user_id" uri:"user_id"` //用户名 Mobile string `json:"mobile" uri:"mobile"` //用户名 } //查询用户 GET func GetUsers(c *gin.Context) { var ( err error user = &GetUsersParam{} ) globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP()) if err = c.ShouldBindUri(&user); err != nil { c.JSON(http.StatusOK, &CallBack{ Code: model.ErrCodeNormal, Desc: err.Error(), }) return } if _, b := checkToken(c); !b { return } if !callFunc(c, func() (retVal interface{}, errCode string, err error) { retVal, err = services.GetUsers(c, user.UserID, user.Name, user.Mobile) return retVal, "", err }) { return } return } type UserParam struct { Name string `json:"name" form:"name" binding:"required"` //用户名 Password string `json:"password" form:"password" binding:"required"` //密码,md5后的 Code string `json:"code" form:"code" binding:"required"` //验证码 } //注册 POST func RegisterUser(c *gin.Context) { var ( err error user = &UserParam{} ) globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP()) if err = c.Bind(&user); err != nil { c.JSON(http.StatusOK, &CallBack{ Code: model.ErrCodeNormal, Desc: err.Error(), }) globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err) return } if !captchaVerify(c, user.Code) { c.JSON(http.StatusOK, &CallBack{ Code: model.ErrCodeNormal, Desc: "验证码错误!", }) globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err) return } if !callFunc(c, func() (retVal interface{}, errCode string, err error) { err = services.RegisterUser(c, user.Name, user.Password) return retVal, "", err }) { return } return } //登录 POST func Login(c *gin.Context) { var ( err error user = &UserParam{} ) globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP()) if err = c.Bind(&user); err != nil { c.JSON(http.StatusOK, &CallBack{ Code: model.ErrCodeNormal, Desc: err.Error(), }) globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err) return } if !captchaVerify(c, user.Code) { c.JSON(http.StatusOK, &CallBack{ Code: model.ErrCodeNormal, Desc: "验证码错误!", }) globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err) return } if !callFunc(c, func() (retVal interface{}, errCode string, err error) { retVal, err = services.Login(c, user.Name, user.Password) return retVal, "", err }) { return } return } //自动登录,获取token POST func GetTokenInfo(c *gin.Context) { var ( token string b bool ) globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP()) if token, b = checkToken(c); !b { return } if !callFunc(c, func() (retVal interface{}, errCode string, err error) { retVal, err = services.GetTokenInfo(c, token) return retVal, "", err }) { return } return } //登出,删token POST func Logout(c *gin.Context) { var ( token string b bool ) if token, b = checkToken(c); !b { return } if !callFunc(c, func() (retVal interface{}, errCode string, err error) { err = services.Logout(c, token) return retVal, "", err }) { return } return } //更新用户信息 POST func UpdateUser(c *gin.Context) { var ( err error user = &struct { Payload string `json:"payload" form:"payload" binding:"required"` //user 的json格式数据 }{} ) globals.SugarLogger.Debugf("Begin API :%s params: %v ip: %s", c.Request.URL, c.Params, c.ClientIP()) if err = c.Bind(&user); err != nil { c.JSON(http.StatusOK, &CallBack{ Code: model.ErrCodeNormal, Desc: err.Error(), }) globals.SugarLogger.Debugf("End API :%s error:%v:", c.Request.URL, err) return } if _, b := checkToken(c); !b { return } if !callFunc(c, func() (retVal interface{}, errCode string, err error) { err = services.UpdateUser(c, user.Payload) return retVal, "", err }) { return } return }