package models import ( "github.com/beego/beego/v2/client/orm" "time" ) // BannerViewHistory banner访问历史 type BannerViewHistory struct { ViewHistoryID uint64 `orm:"column(view_history_id);pk"` // id UserID uint64 // 用户id Mobile string // 手机号 Email string // 邮箱 RealName string // 用户实际名称 CompanyName string // 公司名称 CreatedTime time.Time // 创建时间 LastUpdatedTime time.Time FirstSource int // 一级来源 1小程序移动 2小程序pc 3研报官网 SecondSource int // 二级来源 1首页 2研报详情页 BannerUrl string } func GetBannerHistoryList() (items []*BannerHistoryListRespItem, err error) { sql := ` SELECT *,COUNT(*) AS pv,MAX(last_updated_time) AS last_updated_time FROM banner_view_history WHERE 1=1 GROUP BY banner_url, first_source, second_source ` o := orm.NewOrm() _, err = o.Raw(sql).QueryRows(&items) return } type SourcePv struct { FirstSource int SecondSource int Pv int LastUpdatedTime string } type BannerHistoryListRespItem struct { ViewHistoryID uint64 `orm:"column(view_history_id);pk"` // id UserID uint64 // 用户id Mobile string // 手机号 Email string // 邮箱 RealName string // 用户实际名称 CompanyName string // 公司名称 CreatedTime string // 创建时间 LastUpdatedTime string FirstSource int // 一级来源 1小程序移动 2小程序pc 3研报官网 SecondSource int // 二级来源 1首页 2研报详情页 BannerUrl string Pv int SourceList []*SourcePv StartDate string EndDate string Remark string } type BannerHistoryListResp struct { List []*BannerHistoryListRespItem } func GetBannerUrlList() (items []*BannerHistoryListRespItem, err error) { sql := ` SELECT *,COUNT(*) AS pv FROM banner_view_history WHERE 1=1 GROUP BY banner_url ` o := orm.NewOrm() _, err = o.Raw(sql).QueryRows(&items) return }