user_record.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package models
  2. import (
  3. "github.com/rdlucklib/rdluck_tools/orm"
  4. "time"
  5. )
  6. type UserRecord struct {
  7. UserRecordId int `orm:"column(user_record_id);pk"`
  8. OpenId string `description:"用户openid,最大长度:32"`
  9. UnionId string `description:"用户unionid,最大长度:64"`
  10. Subscribe int `description:"是否关注"`
  11. NickName string `descritpion:"用户昵称,最大长度:32"`
  12. RealName string `descritpion:"用户实际名称,最大长度:32"`
  13. BindAccount string `descritpion:"绑定时的账号,最大长度:128"`
  14. Sex int `descritpion:"普通用户性别,1为男性,2为女性"`
  15. Province string `description:"普通用户个人资料填写的省份,最大长度:30"`
  16. City string `description:"普通用户个人资料填写的城市,最大长度:30"`
  17. Country string `description:"国家,如中国为CN,最大长度:30"`
  18. Headimgurl string `description:"用户第三方(微信)头像,最大长度:512"`
  19. CreateTime time.Time `description:"创建时间,关系添加时间、用户授权时间"`
  20. CreatePlatform int `description:"注册平台,1:日度点评公众号,2:管理后台,3:pc端网站,4:查研观向小程序;默认:1"`
  21. SessionKey string `description:"微信小程序会话密钥,最大长度:255"`
  22. UserId int `description:"用户id"`
  23. }
  24. //根据openid获取用户关系
  25. func GetUserRecordByOpenId(openId string) (item *UserRecord, err error) {
  26. sql := `SELECT * FROM user_record WHERE open_id=? `
  27. err = orm.NewOrm().Raw(sql, openId).QueryRow(&item)
  28. return
  29. }
  30. //根据openid解除绑定用户关系
  31. func UnBindUserRecordByOpenid(openId string) (err error) {
  32. o := orm.NewOrm()
  33. msql := ` UPDATE user_record SET user_id = 0,bind_account="" WHERE open_id = ? `
  34. _, err = o.Raw(msql, openId).Exec()
  35. return
  36. }
  37. //根据用户id和平台id获取用户关系
  38. func GetUserRecordByUserId(userId, platform int) (item *UserRecord, err error) {
  39. sql := `SELECT * FROM user_record WHERE user_id=? AND create_platform = ?`
  40. err = orm.NewOrm().Raw(sql, userId, platform).QueryRow(&item)
  41. return
  42. }
  43. //根据用户id和平台id获取用户关系
  44. func GetUserRecordByUserIdByXzs(mobile string, platform int) (item *UserRecord, err error) {
  45. sql := `SELECT
  46. cr.open_id
  47. FROM
  48. wx_user AS u
  49. INNER JOIN user_record AS r ON r.user_id = u.user_id
  50. INNER JOIN cygx_user_record AS cr ON cr.union_id = r.union_id
  51. WHERE
  52. u.mobile = ?
  53. AND create_platform = ?`
  54. err = orm.NewOrm().Raw(sql, mobile, platform).QueryRow(&item)
  55. return
  56. }
  57. //添加用户关系
  58. func AddUserRecord(record *UserRecord) (recordId int64, err error) {
  59. o := orm.NewOrm()
  60. recordId, err = o.Insert(record)
  61. return
  62. }
  63. //根据openid绑定用户关系
  64. func BindUserRecordByOpenid(userId int, openId, bindAccount string) (err error) {
  65. o := orm.NewOrm()
  66. msql := " UPDATE user_record SET user_id = ?,bind_account=? WHERE open_id = ? "
  67. _, err = o.Raw(msql, userId, bindAccount, openId).Exec()
  68. return
  69. }
  70. //修改用户微信信息
  71. func ModifyUserRecordInfo(openId, nickName, headimgUrl, city, province, country, sessionKey string, sex, userId int) (err error) {
  72. o := orm.NewOrm()
  73. sql := `UPDATE user_record SET nick_name=?,headimgurl=?,sex=?,city=?,province=?,country=?,session_key=? WHERE user_id=? and open_id=? `
  74. _, err = o.Raw(sql, nickName, headimgUrl, sex, city, province, country, sessionKey, userId, openId).Exec()
  75. return
  76. }
  77. //修改用户微信信息
  78. func ModifyUserRecordByDetail(openId, unionId, nickName, headimgUrl, city, province, country string, sex, userId int) (err error) {
  79. o := orm.NewOrm()
  80. sql := `UPDATE user_record SET union_id=?, nick_name=?,headimgurl=?,sex=?,city=?,province=?,country=? WHERE user_id=? and open_id=? `
  81. _, err = o.Raw(sql, unionId, nickName, headimgUrl, sex, city, province, country, userId, openId).Exec()
  82. return
  83. }
  84. //修改用户微信信息
  85. func ModifyUserRecordSessionKey(openId, sessionKey string) (err error) {
  86. o := orm.NewOrm()
  87. sql := `UPDATE user_record SET session_key=? WHERE open_id=? `
  88. _, err = o.Raw(sql, sessionKey, openId).Exec()
  89. return
  90. }
  91. //根据用户id和平台id获取用户关系
  92. func GetUserRecordByMobile(platform int, bindAccount string) (item *UserRecord, err error) {
  93. sql := `SELECT cr.open_id FROM user_record as u
  94. INNER JOIN cygx_user_record AS cr ON cr.union_id = u.union_id
  95. WHERE create_platform=? AND bind_account = ?`
  96. err = orm.NewOrm().Raw(sql, platform, bindAccount).QueryRow(&item)
  97. return
  98. }
  99. //获取该用户第一个的 三方信息(微信头像信息)
  100. func GetUserThirdRecordByUserId(userId int) (item *UserRecord, err error) {
  101. sql := `SELECT * FROM user_record WHERE user_id = ? order by user_record_id asc`
  102. err = orm.NewOrm().Raw(sql, userId).QueryRow(&item)
  103. return
  104. }