wx_user_rai_label.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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. }
  23. type WxUserRaiLabelListResp struct {
  24. UserId int `description:"用户ID"`
  25. RaiLabelId int `description:"ID"`
  26. Label string `description:"标签内容"`
  27. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  28. }
  29. type WxUserRaiLabelAddReq struct {
  30. UserId int `description:"用户ID"`
  31. Label string `description:"标签内容"`
  32. }
  33. type WxUserRaiLabelIdReq struct {
  34. RaiLabelId int `description:"ID"`
  35. }
  36. // 添加
  37. func AddWxUserRaiLabel(item *WxUserRaiLabel) (err error) {
  38. o := orm.NewOrmUsingDB("hz_cygx")
  39. _, err = o.Insert(item)
  40. return
  41. }
  42. // DeleteWxUserRaiLabel 根据主键ID删除数据
  43. func DeleteWxUserRaiLabel(raiLabelId int) (err error) {
  44. o := orm.NewOrmUsingDB("hz_cygx")
  45. sql := ` DELETE FROM wx_user_rai_label WHERE rai_label_id = ? `
  46. _, err = o.Raw(sql, raiLabelId).Exec()
  47. return
  48. }
  49. // GetWxUserRaiLabelListByUserIds 根据多个userId 获取每个UserId最新的十条数据
  50. func GetWxUserRaiLabelListByUserIds(userIdArr []int) (list []*WxUserRaiLabelListResp, err error) {
  51. lenArr := len(userIdArr)
  52. if lenArr == 0 {
  53. return
  54. }
  55. o := orm.NewOrmUsingDB("hz_cygx")
  56. sql := `SELECT
  57. t.rai_label_id,
  58. t.user_id,
  59. t.label,
  60. t.source_type
  61. FROM
  62. (
  63. SELECT
  64. rai_label_id,
  65. user_id,
  66. label,
  67. source_type,
  68. create_time,
  69. @row_number :=
  70. IF
  71. ( @prev_user_id = user_id, @row_number + 1, 1 ) AS rank,
  72. @prev_user_id := user_id
  73. FROM
  74. wx_user_rai_label,
  75. ( SELECT @row_number := 0, @prev_user_id := NULL ) AS vars
  76. WHERE
  77. user_id IN ( ` + utils.GetOrmInReplace(lenArr) + ` )
  78. ORDER BY
  79. user_id DESC
  80. ) AS t
  81. WHERE
  82. t.rank <= 10
  83. ORDER BY
  84. t.create_time DESC `
  85. _, err = o.Raw(sql, userIdArr).QueryRows(&list)
  86. return
  87. }
  88. // 通过纪要ID获取详情
  89. func GetWxUserRaiLabelDetailById(raiLabelId int) (item *WxUserRaiLabel, err error) {
  90. o := orm.NewOrmUsingDB("hz_cygx")
  91. sql := `SELECT
  92. *
  93. FROM
  94. wx_user_rai_label
  95. WHERE
  96. rai_label_id =? `
  97. err = o.Raw(sql, raiLabelId).QueryRow(&item)
  98. return
  99. }
  100. type WxUserRaiLabelDetailResp struct {
  101. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  102. KeyWord *WxUserRaiLabelKeyWordResp
  103. Activity *WxUserRaiLabelActivityResp
  104. RoadShow *WxUserRaiLabelRoadShowResp
  105. Seller *WxUserRaiLabelSellerResp
  106. Article *WxUserRaiLabelArticleResp
  107. }
  108. type WxUserRaiLabelKeyWordResp struct {
  109. Label string `description:"标签内容"`
  110. CreateTime string `description:"创建时间"`
  111. }
  112. type WxUserRaiLabelActivityResp struct {
  113. ActivityName string `description:"活动名称"`
  114. ActivityTypeName string `description:"活动类型名称"`
  115. ActivityTime string `description:"活动时间"`
  116. Duration string `description:"参会时长"`
  117. Label string `description:"标签内容"`
  118. }
  119. type WxUserRaiLabelRoadShowResp struct {
  120. Theme string `description:"会议主题"`
  121. ResearcherName string `description:"研究员名称"`
  122. RoadShowTime string `description:"开始时间"`
  123. Label string `description:"标签内容"`
  124. }
  125. type WxUserRaiLabelSellerResp struct {
  126. Label string `description:"标签内容"`
  127. SysUserRealName string `description:"创建人名称"`
  128. CreateTime string `description:"创建时间"`
  129. }
  130. type WxUserRaiLabelArticleResp struct {
  131. Title string `description:"标题"`
  132. PublishDate time.Time `description:"发布时间"`
  133. CreateTime string `description:"创建时间"`
  134. SourceText string `description:"阅读来源"`
  135. StopTime string `description:"阅读停留时间"`
  136. Label string `description:"标签内容"`
  137. }