users.go 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "strings"
  5. )
  6. type HongzeUsers struct {
  7. RealName string
  8. CompanyName string
  9. Mobile string
  10. IsRegister string
  11. UserType string
  12. }
  13. func GetHongzeUsers() (items []*HongzeUsers, err error) {
  14. sql := `select wu.real_name,c.company_name,left(wu.mobile, 11) as mobile ,if(wu.open_id='','否','是') as is_register,if(c.type in (1),'是','否') as user_type
  15. from wx_user wu
  16. inner join company c on c.company_id = wu.company_id
  17. where c.company_id <> 1 and c.company_id <> 16
  18. and c.type in (1)
  19. order by company_name desc `
  20. _, err = orm.NewOrm().Raw(sql).QueryRows(&items)
  21. return
  22. }
  23. type WxUser struct {
  24. UserId int64
  25. Mobile string
  26. Email string
  27. CompanyId int
  28. ExpiredIn int64
  29. OpenId string
  30. }
  31. func GetWxUserByUserId(userId int) (item *WxUser, err error) {
  32. sql := `SELECT * FROM wx_user WHERE user_id=? `
  33. err = orm.NewOrm().Raw(sql, userId).QueryRow(&item)
  34. return
  35. }
  36. func GetWxUserByMobile(mobile string) (item *WxUser, err error) {
  37. sql := `SELECT * FROM wx_user WHERE mobile=? `
  38. err = orm.NewOrm().Raw(sql, mobile).QueryRow(&item)
  39. return
  40. }
  41. func AddWxUser(companyId int, mobile, realName, email string) (err error) {
  42. sql := `INSERT INTO wx_user(company_id,real_name,mobile,first_login,enabled,is_note,from_type,apply_method,email) VALUES (?,?,?,1,1,1,'report',0,?);`
  43. orm.NewOrm().Raw(sql, companyId, realName, mobile, email).Exec()
  44. return
  45. }
  46. func GetPotentialUser() (items []*WxUser, err error) {
  47. sql := ` SELECT * FROM wx_user WHERE company_id=1 AND report_last_view_time <> '' `
  48. o := orm.NewOrm()
  49. _, err = o.Raw(sql).QueryRows(&items)
  50. return
  51. }
  52. func GetMaxReviewTime(uid int) (max_time string, err error) {
  53. o := orm.NewOrm()
  54. sql := `SELECT MAX(a.max_time) AS max_time FROM (
  55. SELECT MAX(created_time)AS max_time FROM user_view_history AS a WHERE user_id=?
  56. UNION
  57. SELECT MAX(create_time)AS max_time FROM hongze_rddp.report_view_record AS a WHERE user_id=?
  58. )AS a`
  59. err = o.Raw(sql, uid, uid).QueryRow(&max_time)
  60. return
  61. }
  62. func ModifyUserLastViewTime(uid int, lastViewTime string) (err error) {
  63. o := orm.NewOrm()
  64. sql := `UPDATE wx_user SET report_last_view_time=? WHERE user_id=? `
  65. _, err = o.Raw(sql, lastViewTime, uid).Exec()
  66. return
  67. }
  68. // GetUserOpenidListByUserId 根据用户id来获取他的openid列表集合
  69. func GetUserOpenidListByUserId(userId int) (list []*OpenIdList, err error) {
  70. sql := `SELECT open_id FROM user_record WHERE user_id = ? and create_platform = 1`
  71. _, err = orm.NewOrm().Raw(sql, userId).QueryRows(&list)
  72. return
  73. }
  74. // GetUserOpenidListByUserIds 根据用户id字符串集合来获取他的openid列表集合
  75. func GetUserOpenidListByUserIds(userIdStr []string) (list []*OpenIdList, err error) {
  76. if len(userIdStr) <= 0 {
  77. return
  78. }
  79. sql := `SELECT open_id FROM user_record WHERE user_id in (` + strings.Join(userIdStr, ",") + `) and create_platform = 1`
  80. _, err = orm.NewOrm().Raw(sql).QueryRows(&list)
  81. return
  82. }