user_read_record.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package models
  2. import (
  3. "time"
  4. "github.com/beego/beego/v2/client/orm"
  5. )
  6. type UserReadRecord struct {
  7. UserReadRecordId int `orm:"pk" description:"id"`
  8. UserId int `description:"用户id"`
  9. ReportId int `description:"报告id"`
  10. ReportTitle string `description:"报告标题"`
  11. // ChartPermissionId1 string `description:"一级品种id"`
  12. // ChartPermissionId2 string `description:"二级品种id"`
  13. ChartPermissionName string `description:"二级品种名称"`
  14. ClassifyId1 int `description:"一级级分类id"`
  15. ClassifyName1 string `description:"一级分类名称"`
  16. ClassifyId2 int `description:"二级分类id"`
  17. ClassifyName2 string `description:"二级分类名称"`
  18. Timestamp int `description:"阅读开始时间戳"`
  19. EndTimestamp int `description:"阅读结束时间戳"`
  20. CreateTime time.Time `description:"创建时间"`
  21. CreateDate string `description:"创建日期"`
  22. StayTime string `description:"停留时间"`
  23. StayTimestamp string `description:"停留时间戳"`
  24. }
  25. type ReadCntStaitc struct {
  26. CreateDate string
  27. Count int
  28. }
  29. type PermissionCntStaitc struct {
  30. ChartPermissionId int
  31. PermissionName string
  32. Count int
  33. Percent float64
  34. }
  35. func GetUserReadRecordByUserId(userId int, condition string, pars []interface{}, startSize, pageSize int) (items []*UserReadRecord, err error) {
  36. o := orm.NewOrm()
  37. sql := `SELECT DISTINCT ur.user_read_record_id, ur.report_id, ur.report_title, ur.chart_permission_name, ur.classify_name2,
  38. ur.create_time, ur.stay_time, ur.classify_id2
  39. FROM user_read_record AS ur
  40. LEFT JOIN user_read_permission2 AS urp2
  41. ON ur.user_read_record_id = urp2.user_read_record_id
  42. WHERE user_id = ? `
  43. if condition != "" {
  44. sql += condition
  45. }
  46. sql += ` ORDER BY create_time DESC LIMIT ?, ?`
  47. _, err = o.Raw(sql, userId, pars, startSize, pageSize).QueryRows(&items)
  48. return
  49. }
  50. func GetStaticReadCnt(condition string, pars []interface{}, startDate, endDate string) (items []*ReadCntStaitc, err error) {
  51. o := orm.NewOrm()
  52. sql := `SELECT create_date, COUNT(*) AS count
  53. FROM user_read_record AS ur
  54. LEFT JOIN user_read_permission2 AS urp
  55. ON ur.user_read_record_id = urp.user_read_record_id
  56. WHERE 1=1 `
  57. if condition != "" {
  58. sql += condition
  59. }
  60. sql += ` AND (ur.create_date BETWEEN ? AND ?) GROUP BY ur.create_date`
  61. _, err = o.Raw(sql, pars, startDate, endDate).QueryRows(&items)
  62. return
  63. }
  64. func GetStaticPermissionCnt(condition string, pars []interface{}) (items []*PermissionCntStaitc, err error) {
  65. o := orm.NewOrm()
  66. sql := `SELECT urp.chart_permission_id, urp.permission_name,COUNT(*) AS count
  67. FROM user_read_permission1 AS urp
  68. LEFT JOIN user_read_record AS ur
  69. ON urp.user_read_record_id = ur.user_read_record_id
  70. WHERE 1=1 `
  71. if condition != "" {
  72. sql += condition
  73. }
  74. sql += ` GROUP BY urp.chart_permission_id`
  75. _, err = o.Raw(sql, pars).QueryRows(&items)
  76. return
  77. }