Userdao.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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 GetUserByPhone(phone string) (domain.User, error) {
  31. var user = domain.User{}
  32. _, err := configs.Engine.Where("phone = ?", phone).Get(&user)
  33. return user, err
  34. }
  35. func SendSms(matched bool, username string) string {
  36. mins := big.NewInt(100000)
  37. maxs := big.NewInt(999999)
  38. randomNum := share.RandomInt(mins, maxs)
  39. if matched {
  40. //bools, err = configs.Engine.Table("user").Where("username = ?", username).Exist(&user)
  41. share.SendMail(username, strconv.Itoa(int(randomNum.Int64())))
  42. } else {
  43. share.SendSms(strconv.Itoa(int(randomNum.Int64())), username)
  44. }
  45. return randomNum.String()
  46. }
  47. func SaveNewUser(user domain.User) (domain.User, error) {
  48. //密码摘要
  49. user.Password = Md5_KKC(user.Password)
  50. insert, err := configs.Engine.Table("user").Insert(user)
  51. if err != nil {
  52. return user, err
  53. }
  54. if insert > 0 {
  55. configs.Engine.Select("id").Where("phone = ?", user.Phone).Get(&user)
  56. fmt.Println("user666:", user)
  57. }
  58. return user, nil
  59. }
  60. func GetUserByPhoneOrEmail(phone, email string) (bool, error) {
  61. var user = domain.User{}
  62. _, err := configs.Engine.Select("id").Where("phone = ?", phone).Or("email = ?", email).Get(&user)
  63. if err != nil {
  64. fmt.Println("err:", err)
  65. }
  66. return user.Id > 0, err
  67. }
  68. // ExistsPhone 判断手机号是否注册
  69. func ExistsPhone(phone string) (bool, error) {
  70. count, err := configs.Engine.Table("user").Where("phone = ?", phone).Count()
  71. if err != nil {
  72. return false, err
  73. }
  74. return count > 0, nil
  75. }
  76. // ExistsEmail 判断邮箱是否注册
  77. func ExistsEmail(phone string) (bool, error) {
  78. count, err := configs.Engine.Table("user").Where("email = ?", phone).Count()
  79. if err != nil {
  80. return false, err
  81. }
  82. return count > 0, nil
  83. }
  84. func saveUser(username, password, code, phone string) bool {
  85. return true
  86. }
  87. func Md5_KKC(str string) string {
  88. hash := md5.New()
  89. hash.Write([]byte("kkc-" + str))
  90. return fmt.Sprintf("%x", hash.Sum(nil))
  91. }
  92. func SetName(id int, newName string) (domain.User, error) {
  93. user := domain.User{}
  94. _, err := configs.Engine.Table("user").Where("id = ?", id).Get(&user)
  95. if err != nil {
  96. return user, err
  97. }
  98. user.Name = newName
  99. _, err = configs.Engine.Table("user").ID(id).Update(user)
  100. if err != nil {
  101. return user, err
  102. }
  103. return user, nil
  104. }