12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package services
- import (
- "errors"
- "hongze/hongze_clpt/models"
- "hongze/hongze_clpt/utils"
- "strconv"
- "time"
- )
- // 记录用户文章浏览记录
- func ArticleHistory(articleId int, user *models.WxUserItem) (err error) {
- defer func() {
- if err != nil {
- go utils.SendAlarmMsg("记录用户文章浏览记录,失败"+err.Error(), 2)
- }
- }()
- uid := user.UserId
- key := "CYGX_ARTICLE_" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid)
- if !utils.Rc.IsExist(key) {
- //新增浏览记录
- //这个表貌似没怎么用了,暂时保留记录
- record := new(models.CygxArticleViewRecord)
- 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
- _, e := models.AddCygxArticleViewRecord(record)
- if e != nil {
- err = errors.New("AddCygxArticleViewRecord, Err: " + e.Error())
- return
- }
- e = models.ModifyReportLastViewTime(uid)
- if e != nil {
- err = errors.New("ModifyReportLastViewTime, Err: " + e.Error())
- return
- }
- utils.Rc.Put(key, 1, 2*time.Second)
- }
- return
- }
- // 记录用户文章浏览记录带时长
- func ArticleHistoryStopTime(articleId, stopTime, outType int, user *models.WxUserItem) (err error) {
- defer func() {
- if err != nil {
- go utils.SendAlarmMsg("记录用户文章浏览记录带时长,失败"+err.Error(), 2)
- }
- }()
- if stopTime < 3 {
- return
- }
- uid := user.UserId
- key := "CYGX_ARTICLE_PV" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid) + "_" + strconv.Itoa(user.CompanyId) + "_" + strconv.Itoa(outType)
- if !utils.Rc.IsExist(key) {
- record := new(models.CygxArticleHistoryRecordNewpv)
- record.UserId = uid
- record.ArticleId = articleId
- record.CreateTime = time.Now().Add(-time.Second * time.Duration(stopTime))
- record.ModifyTime = time.Now()
- record.Mobile = user.Mobile
- record.Email = user.Email
- record.CompanyId = user.CompanyId
- record.CompanyName = user.CompanyName
- record.StopTime = stopTime
- record.OutType = outType
- record.Source = "WEB"
- newId, e := models.AddCygxArticleViewRecordNewpv(record)
- if e != nil {
- err = errors.New("AddCygxArticleViewRecordNewpv, Err: " + e.Error())
- return
- }
- recordRedis := new(ReportViewRecord)
- recordRedis.UserId = user.UserId
- recordRedis.ReportId = articleId
- recordRedis.Mobile = user.Mobile
- recordRedis.Email = user.Email
- recordRedis.RealName = user.RealName
- recordRedis.CompanyName = user.CompanyName
- recordRedis.StopTime = stopTime
- recordRedis.OutId = int(newId)
- recordRedis.CreateTime = record.CreateTime
- go PushViewRecordNewRedisData(recordRedis, user.CompanyId)
- utils.Rc.Put(key, 1, 2*time.Second)
- }
- go ArticleHistoryUserLabelLogAdd(articleId, uid)
- return
- }
|