Bladeren bron

fix:英文研报uv

zqbao 9 maanden geleden
bovenliggende
commit
b13ffa1534
3 gewijzigde bestanden met toevoegingen van 35 en 11 verwijderingen
  1. 10 11
      models/english_report.go
  2. 13 0
      models/english_report/report.go
  3. 12 0
      services/english_report/report.go

+ 10 - 11
models/english_report.go

@@ -1,9 +1,10 @@
 package models
 
 import (
+	"time"
+
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
-	"time"
 )
 
 type EnglishReport struct {
@@ -31,6 +32,7 @@ type EnglishReport struct {
 	ReportCode         string    `description:"报告唯一编码"`
 	Pv                 int       `description:"Pv"`
 	PvEmail            int       `description:"邮箱PV"`
+	UvEmail            uint      `description:"邮箱UV"` //分享邮箱的UV
 	EmailState         int       `description:"群发邮件状态: 0-未发送; 1-已发送"`
 	Overview           string    `description:"英文概述部分"`
 	KeyTakeaways       string    `description:"关键点"`
@@ -77,12 +79,12 @@ type EditEnglishReportReq struct {
 }
 
 type EditEnglishReportFromPolicyReq struct {
-	ReportId           int64  `description:"报告id"`
-	Title              string `description:"标题"`
-	Abstract           string `description:"摘要"`
-	Author             string `description:"作者"`
-	Frequency          string `description:"频度"`
-	CreateTime         string `description:"创建时间"`
+	ReportId   int64  `description:"报告id"`
+	Title      string `description:"标题"`
+	Abstract   string `description:"摘要"`
+	Author     string `description:"作者"`
+	Frequency  string `description:"频度"`
+	CreateTime string `description:"创建时间"`
 	//Overview           string `description:"英文概述部分"`
 }
 type EditEnglishReportResp struct {
@@ -112,7 +114,6 @@ type ElasticEnglishReportDetail struct {
 	Overview           string `description:"英文概述部分"`
 }
 
-
 type EnglishReportDetail struct {
 	Id                 int    `orm:"column(id)" description:"报告Id"`
 	AddType            int    `description:"新增方式:1:新增报告,2:继承报告"`
@@ -182,7 +183,7 @@ type EnglishReportListResp struct {
 	Paging *paging.PagingItem `description:"分页数据"`
 }
 
-//删除报告
+// 删除报告
 func DeleteEnglishReport(reportIds int) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	sql := ` DELETE FROM english_report WHERE id =? `
@@ -190,7 +191,6 @@ func DeleteEnglishReport(reportIds int) (err error) {
 	return
 }
 
-
 type EnglishClassifyList struct {
 	Id            int       `orm:"column(id);pk"`
 	ClassifyName  string    `description:"分类名称"`
@@ -210,7 +210,6 @@ type EnglishClassifyListResp struct {
 	Paging *paging.PagingItem `description:"分页数据"`
 }
 
-
 // Update 更新
 func (item *EnglishReport) Update(cols []string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")

+ 13 - 0
models/english_report/report.go

@@ -32,6 +32,7 @@ type Report struct {
 	Pv                 int       `gorm:"column:pv" json:"pv"`
 	ShareUrl           string    `gorm:"column:share_url" json:"share_url"`         //分享url
 	PvEmail            uint      `gorm:"column:pv_email" json:"pv_email"`           //分享邮箱的PV
+	UvEmail            uint      `gorm:"column:uv_email" json:"uv_email"`           //分享邮箱的UV
 	EmailState         uint8     `gorm:"column:email_state" json:"email_state"`     //是否已群发邮件:0-否; 1-是
 	KeyTakeaways       string    `gorm:"column:key_takeaways" json:"key_takeaways"` //关键点
 	base.TimeBase
@@ -191,6 +192,18 @@ func (r *Report) UpdatePvEmailByReportCode(reportCode string) (err error) {
 	return
 }
 
+func (r *Report) GetUvEmailByReportIdAndEmailId(reportId, emailId int) (count int, err error) {
+	sql := ` SELECT COUNT(*) AS count FROM english_report_email_pv WHERE report_id = ? AND email_id = ?  `
+	err = global.DEFAULT_MYSQL.Raw(sql, reportId, emailId).Scan(&count).Error
+	return
+}
+
+func (r *Report) UpdateUvEmailByReportCode(reportCode string) (err error) {
+	sql := `UPDATE english_report SET uv_email = uv_email+1 WHERE report_code = ?  `
+	err = global.DEFAULT_MYSQL.Exec(sql, reportCode).Error
+	return
+}
+
 func (r *Report) UpdatePvByReportCode(reportCode string) (err error) {
 	sql := `UPDATE english_report SET pv = pv+1 WHERE report_code = ?  `
 	err = global.DEFAULT_MYSQL.Exec(sql, reportCode).Error

+ 12 - 0
services/english_report/report.go

@@ -32,6 +32,18 @@ func DealEmail(reportItem *english_report.Report, reportCode string, shareEmailI
 		errMsg = "更新报告邮箱PV失败, Err:" + err.Error()
 		return
 	}
+	count, err := reportItem.GetUvEmailByReportIdAndEmailId(int(reportItem.Id), int(userEmail.Id))
+	if err != nil {
+		errMsg = "获取邮箱阅读量失败, Err:" + err.Error()
+		return
+	}
+	if count == 0 {
+		if err = reportItem.UpdateUvEmailByReportCode(reportCode); err != nil {
+			errMsg = "更新报告邮箱UV失败, Err:" + err.Error()
+			return
+		}
+	}
+
 	// 记录邮箱PV
 	pv := &english_report_email.EmailPv{
 		ReportId:   reportItem.Id,