123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package yb
- import (
- "github.com/beego/beego/v2/client/orm"
- )
- type VoiceBroadcastStatistics struct {
- Id int `orm:"column(id);pk"`
- CompanyId int `description:"客户ID"`
- CompanyName string `description:"客户名称"`
- UserId int `description:"用户ID"`
- RealName string `description:"用户名称"`
- Mobile string `description:"用户手机号"`
- Email string `description:"电子邮箱"`
- CompanyStatus string `description:"客户状态"`
- Source int `description:"点击来源,1手机小程序,2pc小程序,3web端"`
- BroadcastId int `description:"语音ID"`
- BroadcastName string `description:"语音名称"`
- SectionId int `description:"语音分类ID"`
- SectionName string `description:"语音分类名称"`
- VarietyId int `description:"品种id"`
- VarietyName string `description:"品种名称"`
- AuthorId int `description:"作者id"`
- Author string `description:"语音管理员"`
- CreateTime string `description:"访问时间"`
- }
- // TableName 表名变更
- func (voiceBroadcastStatistics *VoiceBroadcastStatistics) TableName() string {
- return "yb_voice_broadcast_statistics"
- }
- type VoiceBroadcastTotal struct {
- CompanyId int `description:"客户ID"`
- CompanyName string `description:"客户名称"`
- UserId int `description:"用户ID"`
- RealName string `description:"用户名称"`
- Mobile string `description:"用户手机号"`
- Email string `description:"电子邮箱"`
- CompanyStatus string `description:"客户状态"`
- Source int `description:"点击来源,1手机小程序,2pc小程序,3web端"`
- BroadcastId int `description:"语音ID"`
- BroadcastName string `description:"语音名称"`
- SectionId int `description:"语音分类ID"`
- SectionName string `description:"语音分类名称"`
- VarietyId int `description:"品种id"`
- VarietyName string `description:"品种名称"`
- VisitCount int `description:"阅读量"`
- AuthorId int `description:"作者id"`
- Author string `description:"作者"`
- CreateTime string `description:"访问时间"`
- PublishTime string `description:"发布时间"`
- }
- // GetVoiceBroadcastCensusPageList 获取语音播报统计列表-分页
- func GetVoiceBroadcastCensusPageList(startSize, pageSize int, condition, orderRule string, pars []interface{}) (total int, list []*VoiceBroadcastTotal, err error) {
- o := orm.NewOrm()
- //sql := `SELECT *, COUNT(1) AS visit_count FROM yb_voice_broadcast_statistics WHERE 1=1`
- sql := `SELECT broadcast_id, broadcast_name, section_name, variety_name, author_id, publish_time, COUNT(1) AS visit_count FROM yb_voice_broadcast_statistics WHERE 1=1`
- sql += condition
- sql += ` GROUP BY broadcast_id`
- if orderRule != `` {
- sql += ` ORDER BY ` + orderRule
- }
- totalSql := `SELECT COUNT(1) total FROM (` + sql + `) a `
- err = o.Raw(totalSql, pars).QueryRow(&total)
- if err != nil {
- return
- }
- sql += ` LIMIT ?,? `
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
- return
- }
- type VoiceBroadcastCensusDetail struct {
- UserId int `description:"用户ID" json:"user_id"`
- NewSource int `description:"点击来源,1手机小程序,2pc小程序,3web端" json:"new_source"`
- VisitCount int `description:"阅读量" json:"visit_count"`
- CreateTime string `description:"访问时间" json:"create_time"`
- }
- // GetVoiceBroadcastDetailBySource 获取语音播报统计详情
- func GetVoiceBroadcastDetailBySource(broadcastId, startSize, pageSize int) (total int, list []*VoiceBroadcastCensusDetail, err error) {
- o := orm.NewOrm()
- sql := `SELECT
- user_id,
- IF (source = 4,2,source) AS new_source,
- COUNT(1) AS visit_count,
- create_time
- FROM
- yb_voice_broadcast_statistics
- WHERE
- 1=1
- AND broadcast_id = ?
- GROUP BY
- user_id, new_source
- ORDER BY
- create_time DESC`
- totalSql := `SELECT COUNT(1) total FROM (` + sql + `) a `
- err = o.Raw(totalSql, broadcastId).QueryRow(&total)
- if err != nil {
- return
- }
- sql += ` LIMIT ?,? `
- _, err = o.Raw(sql, broadcastId, startSize, pageSize).QueryRows(&list)
- return
- }
- func UpdateVoiceBroadcastName(id int, name string) (err error) {
- o := orm.NewOrm()
- sql := "UPDATE yb_voice_broadcast_statistics SET section_name=? WHERE section_id=? "
- _, err = o.Raw(sql, name, id).Exec()
- return
- }
- // GetVoiceBroadcastDeatilBysourceTwo 获取语音播报点击量详情
- func GetVoiceBroadcastDeatilBysourceTwo(broadcastId, startSize, pageSize int) (total int, list []*VoiceBroadcastTotal, err error) {
- o := orm.NewOrm()
- sql := ` SELECT *,COUNT(1) AS visit_count FROM yb_voice_broadcast_statistics WHERE broadcast_id=? AND source IN (2,4) GROUP BY user_id ORDER BY create_time DESC `
- totalSql := `select count(1) total from (` + sql + `) a `
- err = o.Raw(totalSql, broadcastId).QueryRow(&total)
- if err != nil {
- return
- }
- sql += ` LIMIT ?,? `
- _, err = o.Raw(sql, broadcastId, startSize, pageSize).QueryRows(&list)
- return
- }
- // UserVoiceBroadcastVisitCount 用户语音播报点击量
- type UserVoiceBroadcastVisitCount struct {
- VisitCount int `json:"visit_count"`
- BroadcastId int `json:"broadcast_id"`
- BroadcastName string `json:"broadcast_name"`
- NewSource int `json:"new_source"`
- RecentTime string `json:"recent_time"`
- }
- // GetVoiceBroadcastVisitCountByUserId 语音播报点击量统计-根据用户
- func GetVoiceBroadcastVisitCountByUserId(sectionId, userId, startSize, pageSize int, orderRule string) (total int, list []*UserVoiceBroadcastVisitCount, err error) {
- o := orm.NewOrm()
- sql := `SELECT COUNT(1) AS visit_count, broadcast_id, broadcast_name, IF(source=4,2,source) as new_source, MAX(create_time) AS recent_time
- FROM yb_voice_broadcast_statistics WHERE user_id = ? AND section_id = ?
- GROUP BY broadcast_id, new_source`
- if orderRule != `` {
- sql += ` ORDER BY ` + orderRule
- } else {
- sql += ` ORDER BY recent_time DESC`
- }
- totalSQL := `SELECT COUNT(1) total FROM (` + sql + `) z `
- err = o.Raw(totalSQL, sectionId, userId).QueryRow(&total)
- if err != nil {
- return
- }
- sql += ` LIMIT ?,?`
- _, err = o.Raw(sql, sectionId, userId, startSize, pageSize).QueryRows(&list)
- return
- }
|