Userdao.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package dao
  2. import (
  3. "crypto/md5"
  4. "demo/configs"
  5. "demo/data/domain"
  6. "demo/share"
  7. "fmt"
  8. "math/big"
  9. "strconv"
  10. )
  11. func Logins(username, password, t string) (domain.User, error) {
  12. user := domain.User{}
  13. var err error
  14. fmt.Println("username", username, "password", password)
  15. hash := md5.New()
  16. hash.Write([]byte("kkc-" + password))
  17. pwd := Md5_KKC(password)
  18. fmt.Println("678", username, pwd, t)
  19. //md5摘要
  20. if t == "email" {
  21. _, err = configs.Engine.Table("user").Where("email = ?", username).Where("password = ?", pwd).Get(&user)
  22. } else if t == "phone" {
  23. _, err = configs.Engine.Table("user").Where("phone = ?", username).Where("password = ?", pwd).Get(&user)
  24. }
  25. if err == nil {
  26. return user, err
  27. }
  28. return domain.User{}, err
  29. }
  30. func SendSms(matched bool, username string) string {
  31. mins := big.NewInt(100000)
  32. maxs := big.NewInt(999999)
  33. randomNum := share.RandomInt(mins, maxs)
  34. if matched {
  35. //bools, err = configs.Engine.Table("user").Where("username = ?", username).Exist(&user)
  36. share.SendMail(username, strconv.Itoa(int(randomNum.Int64())))
  37. } else {
  38. share.SendSms(strconv.Itoa(int(randomNum.Int64())), username)
  39. }
  40. return randomNum.String()
  41. }
  42. func SaveNewUser(user domain.User) (domain.User, error) {
  43. //密码摘要
  44. user.Password = Md5_KKC(user.Password)
  45. insert, err := configs.Engine.Table("user").Insert(user)
  46. if err != nil {
  47. return user, err
  48. }
  49. if insert > 0 {
  50. configs.Engine.Select("id").Where("phone = ?", user.Phone).Get(&user)
  51. fmt.Println("user666:", user)
  52. }
  53. return user, nil
  54. }
  55. func GetUserByPhoneOrEmail(phone, email string) (bool, error) {
  56. var user = domain.User{}
  57. _, err := configs.Engine.Select("id").Where("phone = ?", phone).Or("email = ?", email).Get(&user)
  58. if err != nil {
  59. fmt.Println("err:", err)
  60. }
  61. return user.Id > 0, err
  62. }
  63. // ExistsPhone 判断手机号是否注册
  64. func ExistsPhone(phone string) (bool, error) {
  65. count, err := configs.Engine.Table("user").Where("phone = ?", phone).Count()
  66. if err != nil {
  67. return false, err
  68. }
  69. return count > 0, nil
  70. }
  71. // ExistsEmail 判断邮箱是否注册
  72. func ExistsEmail(phone string) (bool, error) {
  73. count, err := configs.Engine.Table("user").Where("email = ?", phone).Count()
  74. if err != nil {
  75. return false, err
  76. }
  77. return count > 0, nil
  78. }
  79. func saveUser(username, password, code, phone string) bool {
  80. return true
  81. }
  82. func Md5_KKC(str string) string {
  83. hash := md5.New()
  84. hash.Write([]byte("kkc-" + str))
  85. return fmt.Sprintf("%x", hash.Sum(nil))
  86. }
  87. func SetName(id int, newName string) (domain.User, error) {
  88. user := domain.User{}
  89. _, err := configs.Engine.Table("user").Where("id = ?", id).Get(&user)
  90. if err != nil {
  91. return user, err
  92. }
  93. user.Name = newName
  94. _, err = configs.Engine.Table("user").ID(id).Update(user)
  95. if err != nil {
  96. return user, err
  97. }
  98. return user, nil
  99. }