121 lines
3.2 KiB
Go
121 lines
3.2 KiB
Go
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 !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 RegisterUserParam 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 = &RegisterUserParam{}
|
||
)
|
||
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
|
||
}
|
||
|
||
type LoginParam 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 Login(c *gin.Context) {
|
||
var (
|
||
err error
|
||
user = &LoginParam{}
|
||
)
|
||
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, user.Code)
|
||
return retVal, "", err
|
||
}) {
|
||
return
|
||
}
|
||
return
|
||
}
|