package models

import (
	"eta/eta_api/utils"
	"github.com/beego/beego/v2/client/orm"
)

type ResearchReportViewPUV struct {
	ResearchReportId int
	Pv               int
	Uv               int
}

// GetPUVByResearchReportIds 通过报告IDs获取老报告PV、UV
func GetPUVByResearchReportIds(reportIds []string) (list []*ResearchReportViewPUV, err error) {
	if len(reportIds) == 0 {
		return
	}
	o := orm.NewOrmUsingDB("weekly")
	sql := `SELECT
				research_report_id,
				COUNT(1) AS pv,
				COUNT(DISTINCT user_id) AS uv
			FROM
				user_view_history
			WHERE
				research_report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `)
			GROUP BY
				research_report_id`
	_, err = o.Raw(sql, reportIds).QueryRows(&list)
	return
}
