Browse Source

新的PV统计方式写了一半

xingzai 3 years ago
parent
commit
39fd3bd1ed
2 changed files with 54 additions and 0 deletions
  1. 20 0
      controllers/article.go
  2. 34 0
      models/article_history_record_newpv.go

+ 20 - 0
controllers/article.go

@@ -615,6 +615,26 @@ func (this *ArticleController) AddStopTime() {
 					go models.AddArticleStopTime(historyRecord)
 				}
 
+				key := "CYGX_ARTICLE_PV" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid)
+				record := new(models.CygxArticleHistoryRecordNewpv)
+				record.UserId = uid
+				record.ArticleId = articleId
+				record.CreateTime = time.Now()
+				record.Mobile = user.Mobile
+				record.Email = user.Email
+				record.CompanyId = user.CompanyId
+				record.CompanyName = user.CompanyName
+				record.StopTime = req.StopTime
+				record.OutType = req.OutType
+				if !utils.Rc.IsExist(key) {
+					//新增浏览记录
+					go models.AddCygxArticleViewRecordNewpv(record)
+				} else {
+
+				}
+				utils.Rc.Put(key, 1, 5*time.Second)
+				models.ModifyReportLastViewTime(uid)
+
 			} else { //无该行业权限
 				hasPermission = 3
 			}

+ 34 - 0
models/article_history_record_newpv.go

@@ -0,0 +1,34 @@
+package models
+
+import (
+	"rdluck_tools/orm"
+	"time"
+)
+
+type CygxArticleHistoryRecordNewpv struct {
+	Id          int `orm:"column(id);pk"`
+	ArticleId   int
+	UserId      int
+	CreateTime  time.Time
+	Mobile      string `description:"手机号"`
+	Email       string `description:"邮箱"`
+	CompanyId   int    `description:"公司id"`
+	CompanyName string `description:"公司名称"`
+	StopTime    int    `description:"停留时间"`
+	OutType     int    `description:"退出方式,1正常退出,2强制关闭"`
+}
+
+//添加收藏信息
+func AddCygxArticleViewRecordNewpv(item *CygxArticleHistoryRecordNewpv) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+//获取最新的一条阅读记录
+func GetNewArticleHistoryRecordNewpv(uid, articleId int) (item *AddStopTimeNewRep, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM  cygx_article_history_record_newpv WHERE user_id = ? AND article_id = ? ORDER BY id DESC LIMIT 1;`
+	err = o.Raw(sql, uid, articleId).QueryRow(&item)
+	return
+}