login.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package handler
  2. import (
  3. "gorm.io/gorm"
  4. log "gogs.baozhida.cn/zoie/OAuth-core/logger"
  5. "gogs.baozhida.cn/zoie/OAuth-core/pkg"
  6. )
  7. type Login struct {
  8. Username string `form:"UserName" json:"username" binding:"required"` // 用户名
  9. Password string `form:"Password" json:"password" binding:"required"` // 密码
  10. //Code string `form:"Code" json:"code" binding:"required"`
  11. //UUID string `form:"UUID" json:"uuid" binding:"required"`
  12. }
  13. func (u *Login) GetUser(tx *gorm.DB) (user SysUser, role SysRole, dept SysDept, err error) {
  14. err = tx.Table("sys_user").Where("username = ? and status = 2", u.Username).First(&user).Error
  15. if err != nil {
  16. log.Errorf("get user error, %s", err.Error())
  17. return
  18. }
  19. _, err = pkg.CompareHashAndPassword(user.Password, u.Password)
  20. if err != nil {
  21. log.Errorf("user login error, %s", err.Error())
  22. return
  23. }
  24. err = tx.Table("sys_role").Where("id = ? ", user.RoleId).First(&role).Error
  25. if err != nil {
  26. log.Errorf("get role error, %s", err.Error())
  27. return
  28. }
  29. if user.DeptId > 0 {
  30. err = tx.Table("sys_dept").Where("id = ? ", user.DeptId).First(&dept).Error
  31. if err != nil {
  32. log.Errorf("get dept error, %s", err.Error())
  33. return
  34. }
  35. }
  36. return
  37. }
  38. func GetUserByID(tx *gorm.DB, id int64) (user SysUser, role SysRole, err error) {
  39. err = tx.Table("sys_user").Where("id = ? ", id).First(&user).Error
  40. if err != nil {
  41. log.Errorf("get user error, %s", err.Error())
  42. return
  43. }
  44. err = tx.Table("sys_role").Where("id = ? ", user.RoleId).First(&role).Error
  45. if err != nil {
  46. log.Errorf("get role error, %s", err.Error())
  47. return
  48. }
  49. return
  50. }