Userdao.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. insert, err := configs.Engine.Table("user").Insert(user)
  44. if err != nil {
  45. return user, err
  46. }
  47. if insert > 0 {
  48. configs.Engine.Select("id").Where("phone = ?", user.Phone).Get(&user)
  49. fmt.Println("user666:", user)
  50. }
  51. return user, nil
  52. }
  53. func GetUserByPhoneOrEmail(phone, email string) (bool, error) {
  54. var user = domain.User{}
  55. _, err := configs.Engine.Select("id").Where("phone = ?", phone).Or("email = ?", email).Get(&user)
  56. if err != nil {
  57. fmt.Println("err:", err)
  58. }
  59. return user.Id > 0, err
  60. }
  61. // 判断手机号数量
  62. func ExistsPhone(phone string) (bool, error) {
  63. count, err := configs.Engine.Table("user").Where("phone = ?", phone).Count()
  64. if err != nil {
  65. return false, err
  66. }
  67. return count > 0, nil
  68. }
  69. func saveUser(username, password, code, phone string) bool {
  70. return true
  71. }
  72. func Md5_KKC(str string) string {
  73. hash := md5.New()
  74. hash.Write([]byte("kkc-" + str))
  75. return fmt.Sprintf("%x", hash.Sum(nil))
  76. }
  77. func SetName(id int, newName string) (domain.User, error) {
  78. user := domain.User{}
  79. _, err := configs.Engine.Table("user").Where("id = ?", id).Get(&user)
  80. if err != nil {
  81. return user, err
  82. }
  83. user.Name = newName
  84. _, err = configs.Engine.Table("user").ID(id).Update(user)
  85. if err != nil {
  86. return user, err
  87. }
  88. return user, nil
  89. }