wx_user_rai_label.go 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. }