package models import ( "time" "github.com/beego/beego/v2/client/orm" ) type UserReadRecord struct { UserReadRecordId int `orm:"pk" description:"id"` UserId int `description:"用户id"` ReportId int `description:"报告id"` ReportTitle string `description:"报告标题"` // ChartPermissionId1 string `description:"一级品种id"` // ChartPermissionId2 string `description:"二级品种id"` ChartPermissionName string `description:"二级品种名称"` ClassifyId1 int `description:"一级级分类id"` ClassifyName1 string `description:"一级分类名称"` ClassifyId2 int `description:"二级分类id"` ClassifyName2 string `description:"二级分类名称"` Timestamp int `description:"阅读开始时间戳"` EndTimestamp int `description:"阅读结束时间戳"` CreateTime time.Time `description:"创建时间"` CreateDate string `description:"创建日期"` StayTime string `description:"停留时间"` StayTimestamp string `description:"停留时间戳"` } type ReadCntStaitc struct { CreateDate string Count int } type PermissionCntStaitc struct { ChartPermissionId int PermissionName string Count int } func GetUserReadRecordByUserId(userId int, condition string, pars []interface{}, startSize, pageSize int) (items []*UserReadRecord, err error) { o := orm.NewOrm() sql := `SELECT DISTINCT ur.user_read_record_id, ur.report_id, ur.report_title, ur.chart_permission_name, ur.classify_name2, ur.create_time, ur.stay_time, ur.classify_id2 FROM user_read_record AS ur LEFT JOIN user_read_permission2 AS urp2 ON ur.user_read_record_id = urp2.user_read_record_id WHERE user_id = ? ` if condition != "" { sql += condition } sql += ` ORDER BY create_time DESC LIMIT ?, ?` _, err = o.Raw(sql, userId, pars, startSize, pageSize).QueryRows(&items) return } func GetStaticReadCnt(condition string, pars []interface{}, startDate, endDate string) (items []*ReadCntStaitc, err error) { o := orm.NewOrm() sql := `SELECT create_date, COUNT(*) AS count FROM user_read_record AS ur LEFT JOIN user_read_permission2 AS urp ON ur.user_read_record_id = urp.user_read_record_id WHERE 1=1 ` if condition != "" { sql += condition } sql += ` AND (ur.create_date BETWEEN ? AND ?) GROUP BY ur.create_date` _, err = o.Raw(sql, pars, startDate, endDate).QueryRows(&items) return } func GetStaticPermissionCnt(condition string, pars []interface{}) (items []*PermissionCntStaitc, err error) { o := orm.NewOrm() sql := `SELECT urp.chart_permission_id, urp.permission_name,COUNT(*) AS count FROM user_read_permission1 AS urp LEFT JOIN user_read_record AS ur ON urp.user_read_record_id = ur.user_read_record_id WHERE 1=1 ` if condition != "" { sql += condition } sql += ` GROUP BY urp.chart_permission_id` _, err = o.Raw(sql, pars).QueryRows(&items) return }