user.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package model
  2. import (
  3. "fmt"
  4. "strconv"
  5. "trading-go/common"
  6. "trading-go/response"
  7. "trading-go/util"
  8. )
  9. type User struct {
  10. Uid uint `db:"uid" json:"uid,string"`
  11. Vid string `db:"vid" json:"vid"`
  12. Name string `db:"name" json:"name"`
  13. Avatar string `db:"avatar" json:"avatar"`
  14. Phone string `db:"phone" json:"phone"`
  15. Sign string `db:"sign" json:"sign"`
  16. }
  17. type UserJson struct {
  18. Uid string `json:"uid"`
  19. Vid string `json:"vid"`
  20. Name string `json:"name"`
  21. Avatar string `json:"avatar"`
  22. Phone string `json:"phone"`
  23. Sign string `json:"sign"`
  24. }
  25. func (u UserJson) Change() User {
  26. uid, _ := strconv.Atoi(u.Uid)
  27. return User{
  28. Uid: uint(uid),
  29. Vid: u.Vid,
  30. Name: u.Name,
  31. Avatar: u.Avatar,
  32. Phone: u.Phone,
  33. Sign: u.Sign,
  34. }
  35. }
  36. func (u User) Register() error {
  37. db := common.DB
  38. sqlStr := "INSERT INTO users(uid, vid,name, avatar, phone, sign) values (:uid, :vid, :name, :avatar, :phone, :sign)"
  39. exec, err := db.NamedExec(sqlStr, u)
  40. if err != nil {
  41. return err
  42. }
  43. affected, err := exec.RowsAffected()
  44. if err != nil {
  45. return err
  46. }
  47. if affected != 1 {
  48. return util.InsertFailError
  49. }
  50. return nil
  51. }
  52. func (u User) Login() (err error, nu User) {
  53. db := common.DB
  54. sqlStr := "SELECT * FROM users WHERE vid = ?"
  55. err = db.Get(&nu, sqlStr, u.Vid)
  56. return
  57. }
  58. // SPhone 查找电话号码
  59. func (u User) SPhone() error {
  60. var nu User
  61. db := common.DB
  62. fmt.Println(u.Phone)
  63. sqlStr := "SELECT * FROM users WHERE phone = ?"
  64. err := db.Get(&nu, sqlStr, u.Phone)
  65. if err != nil && err.Error() == "sql: no rows in result set" {
  66. return nil
  67. } else if err != nil {
  68. return err
  69. }
  70. return util.PhoneBeUsed
  71. }
  72. // Modify 修改信息
  73. func (u User) Modify(old *User) (User, error) {
  74. var user User
  75. db := common.DB
  76. if u.Name == "" {
  77. u.Name = old.Name
  78. }
  79. if u.Avatar == "" {
  80. u.Avatar = old.Avatar
  81. }
  82. if u.Phone == "" {
  83. u.Phone = old.Phone
  84. }
  85. if u.Sign == "" {
  86. u.Sign = old.Sign
  87. }
  88. sqlStr := "UPDATE users set name = ?,avatar = ?, phone = ?, sign = ? WHERE uid = ?"
  89. exec, err := db.Exec(sqlStr, u.Name, u.Avatar, u.Phone, u.Sign, u.Uid)
  90. if err != nil {
  91. return User{}, err
  92. }
  93. affected, err := exec.RowsAffected()
  94. if err != nil {
  95. return User{}, err
  96. }
  97. if affected != 1 {
  98. return User{}, util.UpdateFailError
  99. }
  100. sqlStr = "SELECT * FROM users WHERE uid = ?"
  101. err = db.Get(&user, sqlStr, u.Uid)
  102. if err != nil {
  103. return User{}, err
  104. }
  105. return user, nil
  106. }
  107. func (u User) FindByIds(ids []uint) (users []User, err error) {
  108. db := common.DB
  109. sqlStr := "SELECT * FROM users WHERE uid = ?"
  110. for i := 0; i < len(ids); i++ {
  111. err := db.Get(&users[i], sqlStr, ids[i])
  112. if err != nil {
  113. return nil, err
  114. }
  115. }
  116. return
  117. }
  118. // Info 获取用户信息
  119. func (u User) Info() (nu User, err error) {
  120. db := common.DB
  121. sqlStr := "SELECT * FROM users WHERE uid = ?"
  122. err = db.Get(&nu, sqlStr, u.Uid)
  123. return
  124. }
  125. func (u User) GetPaged(page, pageSize int) (rsp response.PageResponse, err error) {
  126. var users []User
  127. db := common.DB
  128. sqlStr := "SELECT * FROM users LIMIT ?,?"
  129. rsp.Page = page
  130. rsp.PageSize = pageSize
  131. err = db.Select(&users, sqlStr, (page-1)*pageSize, pageSize)
  132. rsp.Data = users
  133. return
  134. }
  135. func (u User) GetCnt() (cnt int, err error) {
  136. db := common.DB
  137. sqlStr := "SELECT COUNT(1) FROM users"
  138. err = db.Get(&cnt, sqlStr)
  139. return
  140. }
  141. func (u User) CheckVid() bool {
  142. db := common.DB
  143. sqlStr := "SELECT COUNT(1) FROM users WHERE vid = ?"
  144. cnt := 0
  145. _ = db.Get(&cnt, sqlStr)
  146. return cnt == 0
  147. }
  148. func (u User) GetUser() (user User) {
  149. db := common.DB
  150. sqlStr := "SELECT * FROM users WHERE uid = ?"
  151. _ = db.Get(&user, sqlStr, u.Uid)
  152. return
  153. }