123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package models
- import (
- "eta/eta_mini_crm/utils"
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "strings"
- "time"
- )
- // UserReadRecord 用户阅读统计表
- type UserReadRecord struct {
- Id int `orm:"column(id);pk"`
- UserId int `description:"用户ID"`
- ReportId int `description:"报告ID"`
- ReportTitle string `description:"报告标题"`
- ClassifyIdFirst int `description:"一级分类ID"`
- ClassifyNameFirst string `description:"一级分类名称"`
- ClassifyIdSecond int `description:"二级分类ID"`
- ClassifyNameSecond string `description:"二级分类名称"`
- ClassifyIdThird int `description:"三级分类ID"`
- ClassifyNameThird string `description:"三级分类名称"`
- StartTimestamp int `description:"阅读开始时间戳"`
- EndTimestamp int `description:"阅读结束时间戳"`
- ReportSource int `description:"报告来源:1-研报中心;2-文档管理库"`
- CreateTime time.Time `description:"创建时间"`
- }
- func (m *UserReadRecord) TableName() string {
- return "user_read_record"
- }
- type UserReadRecordCols struct {
- PrimaryId string
- UserId string
- ReportId string
- ReportTitle string
- ClassifyIdFirst string
- ClassifyNameFirst string
- ClassifyIdSecond string
- ClassifyNameSecond string
- ClassifyIdThird string
- ClassifyNameThird string
- StartTimestamp string
- EndTimestamp string
- ReportSource string
- CreateTime string
- }
- func (m *UserReadRecord) Cols() UserReadRecordCols {
- return UserReadRecordCols{
- PrimaryId: "id",
- UserId: "user_id",
- ReportId: "report_id",
- ReportTitle: "report_title",
- ClassifyIdFirst: "classify_id_first",
- ClassifyNameFirst: "classify_name_first",
- ClassifyIdSecond: "classify_id_second",
- ClassifyNameSecond: "classify_name_second",
- ClassifyIdThird: "classify_id_third",
- ClassifyNameThird: "classify_name_third",
- StartTimestamp: "start_timestamp",
- EndTimestamp: "end_timestamp",
- ReportSource: "report_source",
- CreateTime: "create_time",
- }
- }
- func (m *UserReadRecord) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrm()
- sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- func (m *UserReadRecord) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*UserReadRecord, err error) {
- o := orm.NewOrm()
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- func (m *UserReadRecord) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*UserReadRecord, err error) {
- o := orm.NewOrm()
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- type UserReadRecordItem struct {
- UserId int `description:"用户ID"`
- ReportId int `description:"报告ID"`
- ReportTitle string `description:"报告标题"`
- ClassifyNameFirst string `description:"一级分类名称"`
- ClassifyNameSecond string `description:"二级分类名称"`
- ClassifyNameThird string `description:"三级分类名称"`
- ReadDuration string `description:"阅读时长"`
- ReportSource int `description:"报告来源:1-研报中心;2-文档管理库"`
- CreateTime string `description:"创建时间"`
- }
- func (m *UserReadRecord) Format2Item() (item *UserReadRecordItem) {
- item = new(UserReadRecordItem)
- item.UserId = m.UserId
- item.ReportId = m.ReportId
- item.ReportTitle = m.ReportTitle
- item.ClassifyNameFirst = m.ClassifyNameFirst
- item.ClassifyNameSecond = m.ClassifyNameSecond
- item.ClassifyNameThird = m.ClassifyNameThird
- if m.StartTimestamp > 0 && m.EndTimestamp > 0 {
- item.ReadDuration = utils.SecondsToHMS(int64(m.EndTimestamp - m.StartTimestamp))
- }
- item.ReportSource = m.ReportSource
- item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, m.CreateTime)
- return
- }
|