package handler import ( "errors" "gogs.baozhida.cn/zoie/OAuth-core/sdk" "gorm.io/gorm" log "gogs.baozhida.cn/zoie/OAuth-core/logger" "gogs.baozhida.cn/zoie/OAuth-core/pkg" ) type Login struct { Username string `form:"UserName" json:"username"` // 用户名 Password string `form:"Password" json:"password"` // 密码 Phone string `form:"Phone" json:"phone"` // 手机号 VerifyCode string `form:"VerifyCode" json:"verifyCode"` // 验证码 Type int `form:"Type" json:"type"` // 1-密码 2-钢瓶规格 Mobile bool `form:"Mobile" json:"mobile"` // 是否手机登录 } //Code string `form:"Code" json:"code" binding:"required"` //UUID string `form:"UUID" json:"uuid" binding:"required"` type SmsLogin struct { } func (u *Login) GetUser(tx *gorm.DB) (user SysUser, role SysRole, dept SysDept, err error) { err = tx.Table("sys_user").Where("username = ? and status = 2", u.Username).First(&user).Error if err != nil { log.Errorf("get user error, %s", err.Error()) return } _, err = pkg.CompareHashAndPassword(user.Password, u.Password) if err != nil { log.Errorf("user login error, %s", err.Error()) return } err = tx.Table("sys_role").Where("id = ? ", user.RoleId).First(&role).Error if err != nil { log.Errorf("get role error, %s", err.Error()) return } if user.DeptId > 0 { err = tx.Table("sys_dept").Where("id = ? ", user.DeptId).First(&dept).Error if err != nil { log.Errorf("get dept error, %s", err.Error()) return } } return } func (u *Login) GetUserByCode(tx *gorm.DB) (user SysUser, role SysRole, dept SysDept, err error) { err = tx.Table("sys_user").Where("phone = ? and status = 2", u.Phone).First(&user).Error if err != nil { log.Errorf("get user error, %s", err.Error()) return } code, err := sdk.Runtime.GetCacheAdapter().Get(GetVerifyCodeCacheKey(u.Phone)) if err != nil { log.Errorf("user login error, %s", err.Error()) err = errors.New("验证码已过期") return } if code != u.VerifyCode { log.Errorf("user login error, %s", "验证码错误") err = errors.New("验证码错误") return } err = tx.Table("sys_role").Where("id = ? ", user.RoleId).First(&role).Error if err != nil { log.Errorf("get role error, %s", err.Error()) return } if user.DeptId > 0 { err = tx.Table("sys_dept").Where("id = ? ", user.DeptId).First(&dept).Error if err != nil { log.Errorf("get dept error, %s", err.Error()) return } } return } func GetUserByID(tx *gorm.DB, id int64) (user SysUser, role SysRole, err error) { err = tx.Table("sys_user").Where("id = ? ", id).First(&user).Error if err != nil { log.Errorf("get user error, %s", err.Error()) return } err = tx.Table("sys_role").Where("id = ? ", user.RoleId).First(&role).Error if err != nil { log.Errorf("get role error, %s", err.Error()) return } return }