user.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package model
  2. import (
  3. "fmt"
  4. "trading-go/common"
  5. "trading-go/util"
  6. )
  7. // WeChatTrading/trading-go/model/user.go
  8. // User 用户信息模型
  9. type User struct {
  10. Uid string `json:"uid" db:"uid"`
  11. Name string `json:"name" db:"name"`
  12. Avatar string `json:"avatar" db:"avatar"`
  13. Email string `json:"email" db:"email"`
  14. Phone string `json:"phone" db:"phone"`
  15. }
  16. func (u User) Register() error {
  17. db := common.DB
  18. sqlStr := "INSERT INTO users(uid, name, avatar) values (:uid, :name, :avatar)"
  19. exec, err := db.NamedExec(sqlStr, u)
  20. if err != nil {
  21. return err
  22. }
  23. affected, err := exec.RowsAffected()
  24. if err != nil {
  25. return err
  26. }
  27. if affected != 1 {
  28. return util.InsertFailError
  29. }
  30. return nil
  31. }
  32. func (u User) Login() (err error, nu User) {
  33. db := common.DB
  34. sqlStr := "SELECT * FROM users WHERE uid = ?"
  35. err = db.Get(&nu, sqlStr, u.Uid)
  36. return
  37. }
  38. func (u User) SPhone() error {
  39. var nu User
  40. db := common.DB
  41. fmt.Println(u.Phone)
  42. sqlStr := "SELECT * FROM users WHERE phone = ?"
  43. err := db.Get(&nu, sqlStr, u.Phone)
  44. if err != nil && err.Error() == "sql: no rows in result set" {
  45. return nil
  46. } else if err != nil {
  47. return err
  48. }
  49. return util.PhoneBeUsed
  50. }
  51. func (u User) Modify() error {
  52. db := common.DB
  53. sqlStr := "UPDATE users set name = ?,avatar = ?, phone = ? WHERE uid = ?"
  54. exec, err := db.Exec(sqlStr, u.Name, u.Avatar, u.Phone, u.Uid)
  55. if err != nil {
  56. return err
  57. }
  58. affected, err := exec.RowsAffected()
  59. if err != nil {
  60. return err
  61. }
  62. if affected != 1 {
  63. return util.UpdateFailError
  64. }
  65. return nil
  66. }