user_read_record.go 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 GetUserReadRecordCountByUserId(userId int, condition string, pars []interface{}) (count int, err error) {
  51. o := orm.NewOrm()
  52. sql := `SELECT COUNT(DISTINCT ur.user_read_record_id) AS count
  53. FROM user_read_record AS ur
  54. LEFT JOIN user_read_permission2 AS urp2
  55. ON ur.user_read_record_id = urp2.user_read_record_id
  56. WHERE user_id = ? `
  57. if condition != "" {
  58. sql += condition
  59. }
  60. err = o.Raw(sql, userId, pars).QueryRow(&count)
  61. return
  62. }
  63. func GetStaticReadCnt(condition string, pars []interface{}, startDate, endDate string) (items []*ReadCntStaitc, err error) {
  64. o := orm.NewOrm()
  65. sql := `SELECT create_date, COUNT(*) AS count
  66. FROM user_read_record AS ur
  67. LEFT JOIN user_read_permission2 AS urp
  68. ON ur.user_read_record_id = urp.user_read_record_id
  69. WHERE 1=1 `
  70. if condition != "" {
  71. sql += condition
  72. }
  73. sql += ` AND (ur.create_date BETWEEN ? AND ?) GROUP BY ur.create_date`
  74. _, err = o.Raw(sql, pars, startDate, endDate).QueryRows(&items)
  75. return
  76. }
  77. func GetStaticPermissionCnt(condition string, pars []interface{}) (items []*PermissionCntStaitc, err error) {
  78. o := orm.NewOrm()
  79. sql := `SELECT urp.chart_permission_id, urp.permission_name,COUNT(*) AS count
  80. FROM user_read_permission1 AS urp
  81. LEFT JOIN user_read_record AS ur
  82. ON urp.user_read_record_id = ur.user_read_record_id
  83. WHERE 1=1 `
  84. if condition != "" {
  85. sql += condition
  86. }
  87. sql += ` GROUP BY urp.chart_permission_id`
  88. _, err = o.Raw(sql, pars).QueryRows(&items)
  89. return
  90. }