wx_user_rai_label.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package cygx
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "hongze/hz_crm_api/utils"
  5. "time"
  6. )
  7. type WxUserRaiLabel struct {
  8. RaiLabelId int `orm:"column(rai_label_id);pk"`
  9. UserId int `description:"用户ID"`
  10. RealName string `description:"用户实际名称"`
  11. Mobile string `description:"手机号"`
  12. Email string `description:"邮箱"`
  13. CompanyId int `description:"公司id"`
  14. CompanyName string `description:"公司名称"`
  15. Label string `description:"标签内容"`
  16. SourceId int `description:"来源ID"`
  17. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  18. SysUserId int `description:"创建人id"`
  19. SysUserRealName string `description:"创建人名称"`
  20. CreateTime time.Time `description:"创建时间"`
  21. ModifyTime time.Time `description:"更新时间"`
  22. TableName string `description:"数据来源的表名"`
  23. }
  24. type WxUserRaiLabelList struct {
  25. List []*WxUserRaiLabelListResp
  26. }
  27. type WxUserRaiLabelListResp struct {
  28. UserId int `description:"用户ID"`
  29. RaiLabelId int `description:"ID"`
  30. Label string `description:"标签内容"`
  31. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  32. }
  33. type WxUserRaiLabelAddReq struct {
  34. UserId int `description:"用户ID"`
  35. Label string `description:"标签内容"`
  36. }
  37. type WxUserRaiLabelIdReq struct {
  38. RaiLabelId int `description:"ID"`
  39. }
  40. // 添加
  41. func AddWxUserRaiLabel(item *WxUserRaiLabel) (err error) {
  42. o := orm.NewOrmUsingDB("hz_cygx")
  43. _, err = o.Insert(item)
  44. return
  45. }
  46. // DeleteWxUserRaiLabel 根据主键ID删除数据
  47. func DeleteWxUserRaiLabel(raiLabelId int) (err error) {
  48. o := orm.NewOrmUsingDB("hz_cygx")
  49. sql := ` DELETE FROM wx_user_rai_label WHERE rai_label_id = ? `
  50. _, err = o.Raw(sql, raiLabelId).Exec()
  51. return
  52. }
  53. // GetWxUserRaiLabelListByUserIds 根据多个userId 获取每个UserId最新的十条数据
  54. func GetWxUserRaiLabelListByUserIds(userIdArr []int) (list []*WxUserRaiLabelListResp, err error) {
  55. lenArr := len(userIdArr)
  56. if lenArr == 0 {
  57. return
  58. }
  59. o := orm.NewOrmUsingDB("hz_cygx")
  60. sql := `SELECT
  61. t.rai_label_id,
  62. t.user_id,
  63. t.label,
  64. t.source_type
  65. FROM
  66. (
  67. SELECT
  68. rai_label_id,
  69. user_id,
  70. label,
  71. source_type,
  72. create_time,
  73. @row_number :=
  74. IF
  75. ( @prev_user_id = user_id, @row_number + 1, 1 ) AS rank,
  76. @prev_user_id := user_id
  77. FROM
  78. wx_user_rai_label,
  79. ( SELECT @row_number := 0, @prev_user_id := NULL ) AS vars
  80. WHERE
  81. user_id IN ( ` + utils.GetOrmInReplace(lenArr) + ` )
  82. ORDER BY
  83. create_time DESC
  84. ) AS t
  85. WHERE
  86. t.rank <= 10
  87. ORDER BY
  88. t.create_time DESC `
  89. _, err = o.Raw(sql, userIdArr).QueryRows(&list)
  90. return
  91. }
  92. // GetWxUserRaiLabelListByUserId 根据用户ID,获取最近四个月的数据信息
  93. func GetWxUserRaiLabelListByUserId(userId int) (list []*WxUserRaiLabelListResp, err error) {
  94. o := orm.NewOrmUsingDB("hz_cygx")
  95. sql := `SELECT
  96. rai_label_id,
  97. user_id,
  98. label,
  99. source_type
  100. FROM
  101. wx_user_rai_label
  102. WHERE
  103. user_id = ? AND create_time >= ?
  104. ORDER BY
  105. create_time DESC LIMIT 1000 `
  106. _, err = o.Raw(sql, userId, time.Now().AddDate(0, -4, 0).Format(utils.FormatDate)).QueryRows(&list)
  107. return
  108. }
  109. // 通过纪要ID获取详情
  110. func GetWxUserRaiLabelDetailById(raiLabelId int) (item *WxUserRaiLabel, err error) {
  111. o := orm.NewOrmUsingDB("hz_cygx")
  112. sql := `SELECT
  113. *
  114. FROM
  115. wx_user_rai_label
  116. WHERE
  117. rai_label_id =? `
  118. err = o.Raw(sql, raiLabelId).QueryRow(&item)
  119. return
  120. }
  121. type WxUserRaiLabelDetailResp struct {
  122. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  123. KeyWord *WxUserRaiLabelKeyWordResp
  124. Activity *WxUserRaiLabelActivityResp
  125. RoadShow *WxUserRaiLabelRoadShowResp
  126. Seller *WxUserRaiLabelSellerResp
  127. Article *WxUserRaiLabelArticleResp
  128. }
  129. type WxUserRaiLabelKeyWordResp struct {
  130. Label string `description:"标签内容"`
  131. CreateTime string `description:"创建时间"`
  132. }
  133. type WxUserRaiLabelActivityResp struct {
  134. ActivityName string `description:"活动名称"`
  135. ActivityTypeName string `description:"活动类型名称"`
  136. ActivityTime string `description:"活动时间"`
  137. Duration string `description:"参会时长"`
  138. Label string `description:"标签内容"`
  139. }
  140. type WxUserRaiLabelRoadShowResp struct {
  141. Theme string `description:"会议主题"`
  142. ResearcherName string `description:"研究员名称"`
  143. RoadShowTime string `description:"开始时间"`
  144. Label string `description:"标签内容"`
  145. }
  146. type WxUserRaiLabelSellerResp struct {
  147. Label string `description:"标签内容"`
  148. SysUserRealName string `description:"创建人名称"`
  149. CreateTime string `description:"创建时间"`
  150. }
  151. type WxUserRaiLabelArticleResp struct {
  152. Title string `description:"标题"`
  153. PublishDate string `description:"发布时间"`
  154. CreateTime string `description:"创建时间"`
  155. SourceText string `description:"阅读来源"`
  156. StopTime string `description:"阅读停留时间"`
  157. Label string `description:"标签内容"`
  158. }
  159. type WxUserRaiLabelRedis struct {
  160. UserId int `description:"用户ID"`
  161. SourceId int `description:"资源ID"`
  162. Label string `description:"标签内容"`
  163. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  164. CreateTime time.Time `description:"创建时间"`
  165. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  166. TableName string `description:"数据来源的表名"`
  167. }