user_read_record.go 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. }
  34. func GetUserReadRecordByUserId(userId int, condition string, pars []interface{}, startSize, pageSize int) (items []*UserReadRecord, err error) {
  35. o := orm.NewOrm()
  36. sql := `SELECT DISTINCT ur.user_read_record_id, ur.report_id, ur.report_title, ur.chart_permission_name, ur.classify_name2,
  37. ur.create_time, ur.stay_time, ur.classify_id2
  38. FROM user_read_record AS ur
  39. LEFT JOIN user_read_permission2 AS urp2
  40. ON ur.user_read_record_id = urp2.user_read_record_id
  41. WHERE user_id = ? `
  42. if condition != "" {
  43. sql += condition
  44. }
  45. sql += ` ORDER BY create_time DESC LIMIT ?, ?`
  46. _, err = o.Raw(sql, userId, pars, startSize, pageSize).QueryRows(&items)
  47. return
  48. }
  49. func GetStaticReadCnt(condition string, pars []interface{}, startDate, endDate string) (items []*ReadCntStaitc, err error) {
  50. o := orm.NewOrm()
  51. sql := `SELECT create_date, COUNT(*) AS count
  52. FROM user_read_record AS ur
  53. LEFT JOIN user_read_permission2 AS urp
  54. ON ur.user_read_record_id = urp.user_read_record_id
  55. WHERE 1=1 `
  56. if condition != "" {
  57. sql += condition
  58. }
  59. sql += ` AND (ur.create_date BETWEEN ? AND ?) GROUP BY ur.create_date`
  60. _, err = o.Raw(sql, pars, startDate, endDate).QueryRows(&items)
  61. return
  62. }
  63. func GetStaticPermissionCnt(condition string, pars []interface{}) (items []*PermissionCntStaitc, err error) {
  64. o := orm.NewOrm()
  65. sql := `SELECT urp.chart_permission_id, urp.permission_name,COUNT(*) AS count
  66. FROM user_read_permission1 AS urp
  67. LEFT JOIN user_read_record AS ur
  68. ON urp.user_read_record_id = ur.user_read_record_id
  69. WHERE 1=1 `
  70. if condition != "" {
  71. sql += condition
  72. }
  73. sql += ` GROUP BY urp.chart_permission_id`
  74. _, err = o.Raw(sql, pars).QueryRows(&items)
  75. return
  76. }