passport.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package models
  2. import (
  3. "github.com/jinzhu/gorm"
  4. "lzyd-user-api/common"
  5. "net/http"
  6. "time"
  7. )
  8. /**
  9. 注册请求参数
  10. */
  11. type RegisterReq struct {
  12. Mobile string `json:"mobile"`
  13. Password string `json:"password"`
  14. ValidCode string `json:"valid_code"`
  15. UserName string `json:"user_name"`
  16. Gender int `json:"gender,omitempty"`
  17. Birthday string `json:"birthday,omitempty"`
  18. Area string `json:"area,omitempty"`
  19. }
  20. /**
  21. 手动注册请求参数
  22. */
  23. type RegisterManualReq struct {
  24. Mobile string `json:"mobile"`
  25. }
  26. /**
  27. 账号密码登录请求参数
  28. */
  29. type LoginReq struct {
  30. Mobile string `json:"mobile"`
  31. Password string `json:"password"`
  32. }
  33. /**
  34. 手机号码登录请求参数
  35. */
  36. type WxLoginReq struct {
  37. Mobile string `json:"mobile"`
  38. }
  39. /**
  40. 快捷登录请求参数
  41. */
  42. type QuickLoginReq struct {
  43. MobilePhone string `json:"mobile_phone"`
  44. ValidCode string `json:"valid_code"`
  45. }
  46. /**
  47. 手机号登录请求参数
  48. */
  49. type MobileLoginReq struct {
  50. Mobile string `json:"mobile"`
  51. }
  52. /**
  53. 第三方登录请求参数
  54. */
  55. type ThirdLoginReq struct {
  56. OpenId string `json:"open_id"`
  57. UserName string `json:"user_name,omitempty"`
  58. Avatar string `json:"avatar,omitempty"`
  59. }
  60. /**
  61. 找回密码请求参数
  62. */
  63. type GetbackPwdReq struct {
  64. Mobile string `json:"mobile"`
  65. ValidCode string `json:"valid_code"`
  66. Password string `json:"password"`
  67. }
  68. /**
  69. 绑定手机号请求参数
  70. */
  71. type BindMobileReq struct {
  72. UserCode string `json:"user_code"`
  73. Mobile string `json:"mobile"`
  74. ValidCode string `json:"valid_code"`
  75. }
  76. /**
  77. 登录信息返回
  78. */
  79. type LoginResp struct {
  80. UserId int64 `json:"user_id"`
  81. UserCode string `json:"user_code"`
  82. Mobile string `json:"mobile"`
  83. OpenID string `json:"open_id"`
  84. LoginType int `json:"login_type"`
  85. }
  86. /**
  87. 查询的手机号与密码信息
  88. */
  89. type LoginInfo struct {
  90. UserId string `json:"user_id"`
  91. Mobile string `json:"mobile"`
  92. Password string `json:"password"`
  93. }
  94. /**
  95. [Mysql]修改最后一次登录时间
  96. */
  97. func (u *UserInfo) UpdateLoginTime() error {
  98. sql := "UPDATE lzyd_user SET login_time = ? WHERE user_id = ?"
  99. err := common.DB.Exec(sql, time.Now(), u.UserId).Error
  100. return err
  101. }
  102. /**
  103. [Mysql]登录后处理
  104. */
  105. func (u *UserInfo) LoginHandler(r *http.Request, loginType int) error {
  106. if err := u.UpdateLoginTime(); err != nil {
  107. return err
  108. }
  109. return nil
  110. }
  111. /**
  112. [Mysql]绑定用户手机号
  113. */
  114. func (u *UserInfo) UpdateBindTel(db *gorm.DB) error {
  115. sql := "UPDATE lzyd_user SET mobile = ? WHERE user_id = ?"
  116. err := db.Exec(sql, u.MobilePhone, u.UserId).Error
  117. return err
  118. }
  119. /**
  120. [Mysql]修改用户密码
  121. */
  122. func (u *LoginInfo) UpdatePwd(db *gorm.DB, pwd string) error {
  123. sql := "UPDATE lzyd_user SET password = ? WHERE user_id = ?"
  124. err := db.Exec(sql, pwd, u.UserId).Error
  125. return err
  126. }