user_view_statistics.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package models
  2. import (
  3. "github.com/rdlucklib/rdluck_tools/orm"
  4. "time"
  5. )
  6. // UserViewStatistics 用户报告报告阅读数量统计表
  7. type UserViewStatistics struct {
  8. Id int `orm:"column(id)" description:"自增Id"`
  9. Mobile string `description:"手机号"`
  10. Email string `description:"手机号"`
  11. RealName string `description:"联系人名称"`
  12. CompanyName string `description:"客户名称"`
  13. ViewNum int `description:"阅读总数"`
  14. Date time.Time `description:"阅读日期"`
  15. CreateTime time.Time `description:"添加时间"`
  16. }
  17. // AddMultiUserViewStatistics 添加用户报告报告阅读数量统计记录
  18. func AddMultiUserViewStatistics(list []*UserViewStatistics) (err error) {
  19. if len(list) <= 0 {
  20. return
  21. }
  22. o := orm.NewOrm()
  23. _, err = o.InsertMulti(len(list), list)
  24. return
  25. }
  26. // GetUserViewStatisticsCount 获取某天的用户报告报告阅读数量统计记录数量
  27. func GetUserViewStatisticsCount(dayStr string) (count int, err error) {
  28. o := orm.NewOrm()
  29. //产品权限
  30. sql := `SELECT count(1) count FROM user_view_statistics WHERE date = ?`
  31. err = o.Raw(sql, dayStr).QueryRow(&count)
  32. return
  33. }
  34. // DeleteUserViewStatisticsCount 获取某天的用户报告报告阅读数量统计记录数量
  35. func DeleteUserViewStatisticsCount(dayStr string) (err error) {
  36. o := orm.NewOrm()
  37. //产品权限
  38. sql := `delete from user_view_statistics WHERE date = ?`
  39. _, err = o.Raw(sql, dayStr).Exec()
  40. return
  41. }
  42. // UserViewMobileTotalSlice 根据用户手机号字符串获取用户的浏览数
  43. type UserViewMobileTotalSlice struct {
  44. Mobile string `description:"用户手机号"`
  45. CompanyName string `description:"客户名称"`
  46. RealName string `description:"用户名称"`
  47. Total int `description:"总阅读数"`
  48. }
  49. // UserViewEmailTotalSlice 根据用户邮箱字符串获取用户的浏览数
  50. type UserViewEmailTotalSlice struct {
  51. Email string `description:"用户邮箱"`
  52. CompanyName string `description:"客户名称"`
  53. RealName string `description:"用户名称"`
  54. Total int `description:"总阅读数"`
  55. }
  56. func GetCountUserViewHistoryByMobiles(date string) (items []*UserViewMobileTotalSlice, err error) {
  57. o := orm.NewOrm()
  58. sql := `SELECT count(1) total,mobile,company_name,real_name FROM user_view_history WHERE created_time >= ? and created_time <= ? and mobile != "" group by mobile`
  59. _, err = o.Raw(sql, date+" 00:00:00", date+" 23:59:59").QueryRows(&items)
  60. return
  61. }
  62. func GetCountUserViewHistoryByEmails(date string) (items []*UserViewEmailTotalSlice, err error) {
  63. o := orm.NewOrm()
  64. sql := `SELECT count(1) total,email,company_name,real_name FROM user_view_history WHERE created_time >= ? and created_time <= ? and email != "" group by email`
  65. _, err = o.Raw(sql, date+" 00:00:00", date+" 23:59:59").QueryRows(&items)
  66. return
  67. //return items2,err
  68. }
  69. func GetReportViewMaxTimeByMobiles(date string) (items []*UserViewMobileTotalSlice, err error) {
  70. o := orm.NewOrm()
  71. o.Using("rddp")
  72. rddpSql := `SELECT mobile,company_name,real_name,COUNT(1) AS total FROM report_view_record WHERE create_time >= ? and create_time <= ? and mobile != "" group by mobile`
  73. _, err = o.Raw(rddpSql, date+" 00:00:00", date+" 23:59:59").QueryRows(&items)
  74. return
  75. }
  76. func GetReportViewMaxTimeByEmails(date string) (items []*UserViewEmailTotalSlice, err error) {
  77. o := orm.NewOrm()
  78. o.Using("rddp")
  79. rddpSql := `SELECT mobile,company_name,real_name,COUNT(1) AS total FROM report_view_record WHERE create_time >= ? and create_time <= ? and email != "" group by email`
  80. _, err = o.Raw(rddpSql, date+" 00:00:00", date+" 23:59:59").QueryRows(&items)
  81. return
  82. }
  83. // GetAdvisoryCountUserViewHistoryByMobiles 每日资讯
  84. func GetAdvisoryCountUserViewHistoryByMobiles(date string) (items []*UserViewMobileTotalSlice, err error) {
  85. o := orm.NewOrm()
  86. sql := `SELECT count(1) total,mobile,company_name,real_name FROM advisory_user_chart_article_record WHERE create_time >= ? and create_time <= ? and mobile != "" group by mobile`
  87. _, err = o.Raw(sql, date+" 00:00:00", date+" 23:59:59").QueryRows(&items)
  88. return
  89. }
  90. // GetAdvisoryCountUserViewHistoryByEmails 每日资讯
  91. func GetAdvisoryCountUserViewHistoryByEmails(date string) (items []*UserViewEmailTotalSlice, err error) {
  92. o := orm.NewOrm()
  93. sql := `SELECT count(1) total,email,company_name,real_name as created_time FROM advisory_user_chart_article_record WHERE create_time >= ? and create_time <= ? and email != "" group by email`
  94. _, err = o.Raw(sql, date+" 00:00:00", date+" 23:59:59").QueryRows(&items)
  95. return
  96. //return items2,err
  97. }