|
@@ -1,7 +1,9 @@
|
|
|
package models
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
+ "hongze/hongze_cygx/utils"
|
|
|
"strconv"
|
|
|
"time"
|
|
|
)
|
|
@@ -21,10 +23,49 @@ type CygxArticleHistoryRecordNewpv struct {
|
|
|
Source string `description:"来源,MOBILE:手机端,PC:电脑端"`
|
|
|
}
|
|
|
|
|
|
-//添加收藏信息
|
|
|
+//添加阅读记录信息
|
|
|
func AddCygxArticleViewRecordNewpv(item *CygxArticleHistoryRecordNewpv) (lastId int64, err error) {
|
|
|
- o := orm.NewOrm()
|
|
|
+ o, err := orm.NewOrm().Begin()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ fmt.Println(err)
|
|
|
+ if err == nil {
|
|
|
+ o.Commit()
|
|
|
+ } else {
|
|
|
+ o.Rollback()
|
|
|
+ }
|
|
|
+ }()
|
|
|
lastId, err = o.Insert(item)
|
|
|
+
|
|
|
+ //写入记录到总的统计表
|
|
|
+ record := new(CygxArticleHistoryRecordAll)
|
|
|
+ record.UserId = item.UserId
|
|
|
+ record.ArticleId = item.ArticleId
|
|
|
+ record.CreateTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ record.ModifyTime = item.ModifyTime
|
|
|
+ record.Mobile = item.Mobile
|
|
|
+ record.Email = item.Email
|
|
|
+ record.CompanyId = item.CompanyId
|
|
|
+ record.CompanyName = item.CompanyName
|
|
|
+ record.StopTime = item.StopTime
|
|
|
+ record.OutType = item.OutType
|
|
|
+ record.Source = item.Source
|
|
|
+ record.Platfor = 1
|
|
|
+ lastId, err = o.Insert(record)
|
|
|
+
|
|
|
+ // 软删除当天策略平台的文章阅读记录
|
|
|
+ if item.Mobile != "" {
|
|
|
+ sql := `UPDATE cygx_article_history_record_all
|
|
|
+ SET is_del = 1
|
|
|
+ WHERE
|
|
|
+ article_id = ?
|
|
|
+ AND mobile = ?
|
|
|
+ AND platfor = 2
|
|
|
+ AND create_time >= date(NOW()) `
|
|
|
+ _, err = o.Raw(sql, record.ArticleId, record.Mobile).Exec()
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -38,7 +79,18 @@ func GetNewArticleHistoryRecordNewpv(uid, articleId int, modifytime string) (ite
|
|
|
|
|
|
//把十分钟之内的阅读记录进行累加
|
|
|
func UpdateCygxArticleViewRecordNewpv(itemRep *CygxArticleHistoryRecordNewpv, stopTime int) (err error) {
|
|
|
- o := orm.NewOrm()
|
|
|
+ o, err := orm.NewOrm().Begin()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ fmt.Println(err)
|
|
|
+ if err == nil {
|
|
|
+ o.Commit()
|
|
|
+ } else {
|
|
|
+ o.Rollback()
|
|
|
+ }
|
|
|
+ }()
|
|
|
sql := `UPDATE cygx_article_history_record_newpv
|
|
|
SET modify_time = NOW(), stop_time = stop_time + ` + strconv.Itoa(stopTime) + `
|
|
|
WHERE
|
|
@@ -48,6 +100,16 @@ func UpdateCygxArticleViewRecordNewpv(itemRep *CygxArticleHistoryRecordNewpv, st
|
|
|
AND timestampdiff(MINUTE,modify_time,NOW()) < 10`
|
|
|
_, err = o.Raw(sql, itemRep.ArticleId, itemRep.UserId).Exec()
|
|
|
|
|
|
+ // 修改总表的停留时间
|
|
|
+ sql = `UPDATE cygx_article_history_record_all
|
|
|
+ SET modify_time = NOW(), stop_time = stop_time + ` + strconv.Itoa(stopTime) + `
|
|
|
+ WHERE
|
|
|
+ article_id = ?
|
|
|
+ AND user_id = ?
|
|
|
+ AND out_type = 2
|
|
|
+ AND timestampdiff(MINUTE,modify_time,NOW()) < 10`
|
|
|
+ _, err = o.Raw(sql, itemRep.ArticleId, itemRep.UserId).Exec()
|
|
|
+
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -65,3 +127,34 @@ func UpdateCygxArticleViewRecordNewpvList(itemRep *CygxArticleHistoryRecordNewpv
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+type CygxArticleHistoryRecordAll struct {
|
|
|
+ Id int `orm:"column(id);pk"`
|
|
|
+ ArticleId int
|
|
|
+ UserId int
|
|
|
+ CreateTime string
|
|
|
+ ModifyTime time.Time
|
|
|
+ Mobile string `description:"手机号"`
|
|
|
+ Email string `description:"邮箱"`
|
|
|
+ CompanyId int `description:"公司id"`
|
|
|
+ CompanyName string `description:"公司名称"`
|
|
|
+ StopTime int `description:"停留时间"`
|
|
|
+ OutType int `description:"退出方式,1正常退出,2强制关闭"`
|
|
|
+ Source string `description:"来源,MOBILE:手机端,PC:电脑端"`
|
|
|
+ RealName string `description:"用户实际名称"`
|
|
|
+ CreateDateApi time.Time `description:"同步创建时间"`
|
|
|
+ CelueHistoryId int `description:"策略平台记录的ID"`
|
|
|
+ Platfor int `description:"PV阅读记录来源,1:查研观向,2:策略平台"`
|
|
|
+ IsDel int `description:"是否删除"`
|
|
|
+}
|
|
|
+
|
|
|
+//获取当天总表的阅读记录
|
|
|
+func GetArticleHistoryRecordAllList() (items []*CygxArticleHistoryRecordNewpv, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := ` SELECT * FROM cygx_article_history_record_all WHERE create_time >= date(NOW())
|
|
|
+ AND mobile <> ''
|
|
|
+ AND platfor = 1
|
|
|
+ GROUP BY mobile,article_id `
|
|
|
+ _, err = o.Raw(sql).QueryRows(&items)
|
|
|
+ return
|
|
|
+}
|