userdao.go 2.4 KB

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