wx_user.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. }
  40. type WxUserItem struct {
  41. UserId int `description:"用户id"`
  42. OpenId string `description:"open_id"`
  43. UnionId string `description:"union_id"`
  44. CompanyId int `description:"客户id"`
  45. NickName string `description:"用户昵称"`
  46. RealName string `description:"用户实际名称"`
  47. Mobile string `description:"手机号码"`
  48. BindAccount string `description:"绑定时的账号"`
  49. Email string `description:"邮箱"`
  50. Headimgurl string `description:"用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空"`
  51. ApplyMethod int `description:"0:未申请,1:已付费客户申请试用,2:非客户申请试用"`
  52. FirstLogin int `description:"是否第一次登陆"`
  53. }
  54. func GetWxUserItemByUserId(userId int) (item *WxUserItem, err error) {
  55. sql := `SELECT * FROM wx_user WHERE user_id=? `
  56. err = orm.NewOrm().Raw(sql, userId).QueryRow(&item)
  57. return
  58. }
  59. func GetWxUserItemByOpenId(openId string) (item *WxUserItem, err error) {
  60. sql := `SELECT * FROM wx_user WHERE open_id=? `
  61. err = orm.NewOrm().Raw(sql, openId).QueryRow(&item)
  62. return
  63. }
  64. func GetWxUserItemByUnionid(unionid string) (item *WxUserItem, err error) {
  65. sql := `SELECT * FROM wx_user WHERE unionid=? `
  66. err = orm.NewOrm().Raw(sql, unionid).QueryRow(&item)
  67. return
  68. }
  69. type PermissionSearchKeyWord struct {
  70. KeyWord string
  71. }
  72. func GetPermissionSearchKeyWord(userId int) (items []*PermissionSearchKeyWord, err error) {
  73. sql := "SELECT a.key_word FROM chart_permission_search_key_word_mapping AS a INNER JOIN company_report_permission AS crp ON a.chart_permission_id=crp.chart_permission_id INNER JOIN wx_user AS wu ON wu.company_id=crp.company_id WHERE wu.user_id=? AND `from`='rddp' GROUP BY a.key_word "
  74. o := orm.NewOrm()
  75. _, err = o.Raw(sql, userId).QueryRows(&items)
  76. return
  77. }
  78. //判断客户权限总数
  79. func GetUserIsMaxPermission(companyId int) (count int, err error) {
  80. sql := ` SELECT COUNT(DISTINCT b.chart_permission_id) as count FROM company as a
  81. INNER JOIN company_report_permission as b on a.company_id=b.company_id
  82. WHERE b.company_id=? `
  83. o := orm.NewOrm()
  84. err = o.Raw(sql, companyId).QueryRow(&count)
  85. return
  86. }
  87. //添加用户信息
  88. func AddWxUser(item *WxUser) (err error) {
  89. o := orm.NewOrm()
  90. _, err = o.Insert(item)
  91. return
  92. }
  93. type WxLoginResp struct {
  94. Code int
  95. OpenId string
  96. Authorization string
  97. UserId int
  98. Expires time.Time
  99. FirstLogin int
  100. UserPermission int `description:"状态码"`
  101. }
  102. type UserDetail struct {
  103. FirstLogin int `description:"是否第一次登陆"`
  104. Headimgurl string `description:"用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空"`
  105. Mobile string `description:"手机号码"`
  106. Email string `description:"邮箱"`
  107. UserPermission int `description:"用户权限状态:0:付费用户,可正常查看报告,40001:获取用户信息失败,40002:非付费用户"`
  108. }
  109. func GetUserDetailByUserId(userId int) (item *UserDetail, err error) {
  110. o := orm.NewOrm()
  111. sql := `SELECT first_login,headimgurl,mobile,email FROM wx_user WHERE user_id = ? `
  112. err = o.Raw(sql, userId).QueryRow(&item)
  113. return
  114. }
  115. type CheckSmsCodeReq struct {
  116. Mobile string `description:"手机号"`
  117. SmsCode string `description:"验证码"`
  118. }
  119. type SmallLimitResp struct {
  120. IsMaxPermission int
  121. }
  122. type CheckEmailCodeReq struct {
  123. Email string `description:"邮箱"`
  124. SmsCode string `description:"验证码"`
  125. }