package handler import ( "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" binding:"required"` // 用户名 Password string `form:"Password" json:"password" binding:"required"` // 密码 //Code string `form:"Code" json:"code" binding:"required"` //UUID string `form:"UUID" json:"uuid" binding:"required"` } 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 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 }