article_history_record_newpv.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package models
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "hongze/hongze_clpt/utils"
  6. "time"
  7. )
  8. type CygxArticleHistoryRecordNewpv struct {
  9. Id int `orm:"column(id);pk"`
  10. ArticleId int
  11. UserId int
  12. CreateTime time.Time
  13. ModifyTime time.Time
  14. Mobile string `description:"手机号"`
  15. Email string `description:"邮箱"`
  16. CompanyId int `description:"公司id"`
  17. CompanyName string `description:"公司名称"`
  18. StopTime int `description:"停留时间"`
  19. OutType int `description:"退出方式,1正常退出,2强制关闭"`
  20. Source string `description:"来源,MOBILE:手机端,PC:电脑端"`
  21. }
  22. type CygxArticleHistoryRecord struct {
  23. Id int `orm:"column(id);pk"`
  24. ArticleId int
  25. UserId int
  26. CreateTime time.Time
  27. Mobile string `description:"手机号"`
  28. Email string `description:"邮箱"`
  29. CompanyId int `description:"公司id"`
  30. CompanyName string `description:"公司名称"`
  31. ModifyTime time.Time `description:"修改时间"`
  32. StopTime int `description:"停留时间"`
  33. OutType int `description:"退出方式,1正常退出,2强制关闭"`
  34. }
  35. // 添加阅读记录信息
  36. func AddCygxArticleViewRecordNewpv(item *CygxArticleHistoryRecordNewpv) (lastId int64, err error) {
  37. o, err := orm.NewOrm().Begin()
  38. if err != nil {
  39. return
  40. }
  41. defer func() {
  42. fmt.Println(err)
  43. if err == nil {
  44. o.Commit()
  45. } else {
  46. o.Rollback()
  47. }
  48. }()
  49. lastId, err = o.Insert(item)
  50. if err != nil {
  51. return
  52. }
  53. historyRecord := new(CygxArticleHistoryRecord)
  54. historyRecord.UserId = item.UserId
  55. historyRecord.ArticleId = item.ArticleId
  56. historyRecord.CreateTime = time.Now()
  57. historyRecord.Mobile = item.Mobile
  58. historyRecord.Email = item.Email
  59. historyRecord.CompanyId = item.CompanyId
  60. historyRecord.CompanyName = item.CompanyName
  61. lastId, err = o.Insert(historyRecord)
  62. if err != nil {
  63. return
  64. }
  65. //写入记录到总的统计表
  66. record := new(CygxArticleHistoryRecordAll)
  67. record.UserId = item.UserId
  68. record.ArticleId = item.ArticleId
  69. record.CreateTime = item.CreateTime.Format(utils.FormatDateTime)
  70. record.ModifyTime = item.ModifyTime
  71. record.Mobile = item.Mobile
  72. record.Email = item.Email
  73. record.CompanyId = item.CompanyId
  74. record.CompanyName = item.CompanyName
  75. record.StopTime = item.StopTime
  76. record.OutType = item.OutType
  77. record.Source = item.Source
  78. record.Platfor = 1
  79. lastId, err = o.Insert(record)
  80. if err != nil {
  81. return
  82. }
  83. // 软删除当天策略平台的文章阅读记录
  84. if item.Mobile != "" {
  85. sql := `UPDATE cygx_article_history_record_all
  86. SET is_del = 1
  87. WHERE
  88. article_id = ?
  89. AND mobile = ?
  90. AND platfor = 2
  91. AND create_time >= date(NOW()) `
  92. _, err = o.Raw(sql, record.ArticleId, record.Mobile).Exec()
  93. }
  94. return
  95. }
  96. type CygxArticleHistoryRecordAll struct {
  97. Id int `orm:"column(id);pk"`
  98. ArticleId int
  99. UserId int
  100. CreateTime string
  101. ModifyTime time.Time
  102. Mobile string `description:"手机号"`
  103. Email string `description:"邮箱"`
  104. CompanyId int `description:"公司id"`
  105. CompanyName string `description:"公司名称"`
  106. StopTime int `description:"停留时间"`
  107. OutType int `description:"退出方式,1正常退出,2强制关闭"`
  108. Source string `description:"来源,MOBILE:手机端,PC:电脑端"`
  109. RealName string `description:"用户实际名称"`
  110. CreateDateApi time.Time `description:"同步创建时间"`
  111. CelueHistoryId int `description:"策略平台记录的ID"`
  112. Platfor int `description:"PV阅读记录来源,1:查研观向,2:策略平台"`
  113. IsDel int `description:"是否删除"`
  114. }
  115. type EsUserInteraction struct {
  116. Id int `description:"主键ID"`
  117. ArticleId int `description:"文章id"`
  118. ArticleType int `description:"文章类型 1:查研观向, 2:策略平台"`
  119. Title string `description:"标题"`
  120. PublishDate string `description:"发布时间"`
  121. CreateTime string `description:"创建时间"`
  122. StopTime string `description:"阅读停留时间"`
  123. RealName string `description:"姓名"`
  124. CompanyName string `description:"公司名称"`
  125. CompanyId int `description:"公司ID"`
  126. SellerName string `description:"所属销售"`
  127. SellerId int `description:"所属销售ID"`
  128. Mobile string `description:"手机号"`
  129. Email string `description:"邮箱"`
  130. UserId int `description:"用户ID"`
  131. UserArticleHistoryNum int `description:"用户阅读数量"`
  132. CompanyArticleHistoryNum int `description:"机构阅读数量"`
  133. }
  134. // GetArticleHistoryRecord 或用户阅读过的文章ID
  135. func GetArticleHistoryRecord(condition string, pars []interface{}) (item []*CygxArticleHistoryRecord, err error) {
  136. if condition == "" {
  137. return
  138. }
  139. o := orm.NewOrm()
  140. sql := `SELECT *
  141. FROM
  142. cygx_article_history_record
  143. WHERE 1 = 1 ` + condition + ` GROUP BY article_id`
  144. _, err = o.Raw(sql, pars).QueryRows(&item)
  145. return
  146. }