UserDao.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package dao
  2. import (
  3. "errors"
  4. "file-manger-server/db"
  5. "file-manger-server/domain"
  6. )
  7. type UserDao struct{}
  8. func (dao UserDao) TableName() string {
  9. return "user"
  10. }
  11. func (dao UserDao) GetAll(user domain.User) ([]domain.User, int64, error) {
  12. var users []domain.User
  13. count, err := db.Engin.Table("user").FindAndCount(&users, &user)
  14. return users, count, err
  15. }
  16. func (dao UserDao) GetById(id int64) (domain.User, error) {
  17. var user domain.User
  18. res, err := db.Engin.Table("user").Where("id=?", id).Get(&user)
  19. if !res {
  20. return user, errors.New("用户不存在")
  21. }
  22. return user, err
  23. }
  24. func (dao UserDao) GetByUsername(username string) (domain.User, error) {
  25. var user domain.User
  26. res, err := db.Engin.Table("user").Where("username=?", username).Get(&user)
  27. if !res {
  28. return user, errors.New("用户不存在")
  29. }
  30. return user, err
  31. }
  32. func (dao UserDao) Login(username, password string) (domain.User, error) {
  33. var user domain.User
  34. pwd := PasswordHashCompute(password)
  35. _, err := db.Engin.Table("user").Where("username=? and password=?", username, pwd).Get(&user)
  36. if err != nil {
  37. return user, err
  38. }
  39. if user.Id != 0 {
  40. return user, nil
  41. } else {
  42. return user, errors.New("用户名或密码错误")
  43. }
  44. }
  45. // Register 简单注册功能
  46. func (dao UserDao) Register(username, password string) error {
  47. count, err := db.Engin.Table("user").Where("username=?", username).Count()
  48. if err != nil {
  49. return err
  50. }
  51. if count > 0 {
  52. return errors.New("用户名已存在")
  53. }
  54. user := domain.User{
  55. Username: username,
  56. Password: PasswordHashCompute(password),
  57. Status: 1,
  58. }
  59. _, err = db.Engin.Table("user").Insert(&user)
  60. return err
  61. }