wx_user.go 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. package models
  2. import (
  3. "rdluck_tools/orm"
  4. "time"
  5. )
  6. type WxUser struct {
  7. UserId int `orm:"column(user_id);pk"`
  8. OpenId string `description:"open_id"`
  9. UnionId string `description:"union_id"`
  10. Subscribe string `description:"是否关注"`
  11. CompanyId int `description:"客户id"`
  12. NickName string `description:"用户昵称"`
  13. RealName string `description:"用户实际名称"`
  14. UserCode string `description:"用户编码"`
  15. Mobile string `description:"手机号码"`
  16. BindAccount string `description:"绑定时的账号"`
  17. WxCode string `description:"微信号"`
  18. Profession string `description:"职业"`
  19. Email string `description:"邮箱"`
  20. Telephone string `description:"座机"`
  21. Sex int `description:"普通用户性别,1为男性,2为女性"`
  22. Province string `description:"普通用户个人资料填写的省份"`
  23. City string `description:"普通用户个人资料填写的城市"`
  24. Country string `description:"国家,如中国为CN"`
  25. SubscribeTime int `description:"关注时间"`
  26. Remark string `description:"备注"`
  27. Headimgurl string `description:"用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空"`
  28. Privilege string `description:"用户特权信息,json数组,如微信沃卡用户为(chinaunicom)"`
  29. Unionid string `description:"用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。"`
  30. FirstLogin int `description:"是否第一次登陆"`
  31. Enabled int `description:"是否可用"`
  32. CreatedTime time.Time `description:"创建时间"`
  33. LastUpdatedTime time.Time `description:"最新一次修改时间"`
  34. Seller string `description:"销售员"`
  35. Note string `description:"客户备份信息"`
  36. IsNote int `description:"是否备注过信息"`
  37. FromType string `description:"report' COMMENT 'report:研报,teleconference:电话会"`
  38. ApplyMethod int `description:"0:未申请,1:已付费客户申请试用,2:非客户申请试用"`
  39. RegisterTime time.Time `description:"注册时间"`
  40. RegisterPlatform int `description:"注册平台,1:微信端,2:PC网页端"`
  41. IsFreeLogin bool `description:"是否免登陆,true:免登陆,false:非免登陆"`
  42. LoginTime time.Time `description:"最近一次登录时间"`
  43. SessionKey string `description:"微信小程序会话密钥"`
  44. }
  45. //添加用户信息
  46. func AddWxUser(item *WxUser) (lastId int64, err error) {
  47. o := orm.NewOrm()
  48. lastId, err = o.Insert(item)
  49. return
  50. }
  51. type WxUserItem struct {
  52. UserId int `description:"用户id"`
  53. OpenId string `description:"open_id"`
  54. UnionId string `description:"union_id"`
  55. CompanyId int `description:"客户id"`
  56. NickName string `description:"用户昵称"`
  57. RealName string `description:"用户实际名称"`
  58. Mobile string `description:"手机号码"`
  59. BindAccount string `description:"绑定时的账号"`
  60. Email string `description:"邮箱"`
  61. Headimgurl string `description:"用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空"`
  62. ApplyMethod int `description:"0:未申请,1:已付费客户申请试用,2:非客户申请试用"`
  63. FirstLogin int `description:"是否第一次登陆"`
  64. IsFreeLogin int `description:"是否免登陆,true:免登陆,false:非免登陆"`
  65. LoginTime time.Time `description:"登录时间"`
  66. CreatedTime time.Time `description:"创建时间"`
  67. LastUpdatedTime time.Time `description:"最近一次修改时间"`
  68. SessionKey string `description:"微信小程序会话密钥"`
  69. }
  70. func GetWxUserItemByUnionid(unionid string) (item *WxUserItem, err error) {
  71. sql := `SELECT * FROM wx_user WHERE union_id=? `
  72. err = orm.NewOrm().Raw(sql, unionid).QueryRow(&item)
  73. return
  74. }
  75. func GetWxUserItemByUserId(userId int) (item *WxUserItem, err error) {
  76. sql := `SELECT * FROM wx_user WHERE user_id=? `
  77. err = orm.NewOrm().Raw(sql, userId).QueryRow(&item)
  78. return
  79. }
  80. func GetWxUserItemByOpenId(openId string) (item *WxUserItem, err error) {
  81. sql := `SELECT * FROM wx_user WHERE open_id=? `
  82. err = orm.NewOrm().Raw(sql, openId).QueryRow(&item)
  83. return
  84. }
  85. type WxLoginResp struct {
  86. Authorization string
  87. UserId int
  88. FirstLogin int
  89. Headimgurl string `description:"用户头像"`
  90. Mobile string `description:"手机号"`
  91. Email string `description:"邮箱"`
  92. CompanyName string `description:"客户名称"`
  93. Status string `description:"状态"`
  94. EndDate string `description:"到期日期"`
  95. ProductName string `description:"客户类型名称"`
  96. }
  97. type WxGetUserInfoReq struct {
  98. RawData string `description:"rawData"`
  99. Signature string `description:"signature"`
  100. EncryptedData string `description:"encryptedData"`
  101. Iv string `description:"iv"`
  102. }
  103. //修改用户会话key
  104. func ModifyWxUserSessionKey(sessionKey string, userId int) (err error) {
  105. o := orm.NewOrm()
  106. sql := `UPDATE wx_user SET session_key=? WHERE user_id=? `
  107. _, err = o.Raw(sql, sessionKey, userId).Exec()
  108. return
  109. }
  110. //添加用户信息
  111. func ModifyWxUserInfo(unionId, nickName, province, city, country, avatar string, gender, userId int) (err error) {
  112. o := orm.NewOrm()
  113. sql := `UPDATE wx_user SET union_id=?,unionid=?,nick_name=?,sex=?,province=?,city=?,country=?,headimgurl=?, WHERE user_id=? `
  114. _, err = o.Raw(sql, unionId, unionId, nickName, gender, province, city, country, avatar, userId).Exec()
  115. return
  116. }
  117. //修改用户会话key
  118. func DeleteWxUserByUserId(userId int) (err error) {
  119. o := orm.NewOrm()
  120. sql := `DELETE FROM wx_user WHERE user_id=? `
  121. _, err = o.Raw(sql, userId).Exec()
  122. return
  123. }
  124. type WxGetUserInfoResp struct {
  125. //UsersId int `orm:"column(id);pk"`
  126. //Mobile string `description:"手机号"`
  127. //NickName string `description:"昵称"`
  128. //Gender int `description:"用户性别 1:男性,2:女性,0:未知(默认)"`
  129. //CreateTime time.Time `description:"注册时间"`
  130. //ModifyTime time.Time `description:"修改时间"`
  131. //AvatarUrl string `description:"头像地址"`
  132. //City string `description:"城市"`
  133. //Province string `description:"省"`
  134. //Country string `description:"国家"`
  135. //Language string `description:"语言"`
  136. //Appid string `description:"Appid"`
  137. //Timestamp int64 `description:"时间戳"`
  138. Authorization string `description:"登陆凭证,后续接口调用时,带在请求头里面Key:Authorization"`
  139. }
  140. type WxGetPhoneNumberReq struct {
  141. EncryptedData string `description:"encryptedData"`
  142. Iv string `description:"iv"`
  143. }
  144. func ModifyUsersMobile(usersId int, phoneNumber string) (err error) {
  145. o := orm.NewOrm()
  146. sql := `UPDATE wx_user SET mobile=? WHERE user_id=? `
  147. _, err = o.Raw(sql, phoneNumber, usersId).Exec()
  148. return
  149. }
  150. type WxGetPhoneNumberResp struct {
  151. Authorization string `description:"登陆凭证,后续接口调用时,带在请求头里面Key:Authorization"`
  152. PhoneNumber string `description:"用户绑定的手机号(国外手机号会有区号)"`
  153. PurePhoneNumber string `description:"没有区号的手机号"`
  154. CountryCode string `description:"区号"`
  155. }