dongfeng-pay/boss/controllers/loginController.go

107 lines
2.5 KiB
Go
Raw Normal View History

2021-04-27 15:33:49 +08:00
package controllers
import (
"boss/common"
"boss/models"
"boss/utils"
"github.com/beego/beego/v2/adapter/validation"
"github.com/beego/beego/v2/core/logs"
beego "github.com/beego/beego/v2/server/web"
)
type LoginController struct {
beego.Controller
}
func (c *LoginController) Prepare() {
}
func (c *LoginController) Login() {
userID := c.GetString("userID")
passWD := c.GetString("passwd")
code := c.GetString("Code")
dataJSON := new(KeyDataJSON)
valid := validation.Validation{}
if v := valid.Required(userID, "userID"); !v.Ok {
dataJSON.Key = v.Error.Key
dataJSON.Msg = "手机号不能为空!"
} else if v := valid.Required(passWD, "passWD"); !v.Ok {
dataJSON.Key = v.Error.Key
dataJSON.Msg = "登录密码不能为空!"
} else if v := valid.Length(code, common.VERIFY_CODE_LEN, "code"); !v.Ok {
dataJSON.Key = v.Error.Key
dataJSON.Msg = "验证码不正确!"
}
userInfo := models.GetUserInfoByUserID(userID)
if userInfo.UserId == "" {
dataJSON.Key = "userID"
dataJSON.Msg = "用户不存在,请求联系管理员!"
} else {
codeInterface := c.GetSession("verifyCode")
if userInfo.Passwd != utils.GetMD5Upper(passWD) {
dataJSON.Key = "passWD"
dataJSON.Msg = "密码不正确!"
} else if codeInterface == nil {
dataJSON.Key = "code"
dataJSON.Msg = "验证码失效!"
} else if code != codeInterface.(string) {
dataJSON.Key = "code"
dataJSON.Msg = "验证码不正确!"
} else if userInfo.Status == "unactive" {
dataJSON.Key = "unactive"
dataJSON.Msg = "用户已被冻结!"
} else if userInfo.Status == "del" {
dataJSON.Key = "del"
dataJSON.Msg = "用户已被删除!"
}
}
go func() {
userInfo.Ip = c.Ctx.Input.IP()
models.UpdateUserInfoIP(userInfo)
}()
if dataJSON.Key == "" {
c.SetSession("userID", userID)
c.DelSession("verifyCode")
}
c.Data["json"] = dataJSON
c.ServeJSON()
}
/*
* 退出登录,删除session中的数据避免数据量过大内存吃紧
*/
func (c *LoginController) Logout() {
dataJSON := new(BaseDataJSON)
c.DelSession("userID")
dataJSON.Code = 200
c.Data["json"] = dataJSON
c.ServeJSON()
}
/*
* 验证码获取如果获取成功并将验证码存到session中
*/
func (c *LoginController) GetVerifyImg() {
Image, verifyCode := utils.GenerateVerifyCodeImg()
if Image == nil || len(verifyCode) != common.VERIFY_CODE_LEN {
logs.Error("获取验证码图片失败!")
} else {
c.SetSession("verifyCode", verifyCode)
}
logs.Info("验证码:", verifyCode)
Image.WriteTo(c.Ctx.ResponseWriter)
}