user_record.go 6.6 KB

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