wx_user_rai_label.go 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. package models
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/client/orm"
  5. "strings"
  6. "time"
  7. )
  8. type WxUserRaiLabelRedis struct {
  9. UserId int `description:"用户ID"`
  10. SourceId int `description:"资源ID"`
  11. Label string `description:"标签内容"`
  12. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  13. CreateTime time.Time `description:"创建时间"`
  14. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  15. TableName string `description:"数据来源的表名"`
  16. }
  17. type WxUserRaiLabel struct {
  18. RaiLabelId int `orm:"column(rai_label_id);pk"`
  19. UserId int `description:"用户ID"`
  20. RealName string `description:"用户实际名称"`
  21. Mobile string `description:"手机号"`
  22. Email string `description:"邮箱"`
  23. CompanyId int `description:"公司id"`
  24. CompanyName string `description:"公司名称"`
  25. Label string `description:"标签内容"`
  26. SourceId int `description:"来源ID"`
  27. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  28. SysUserId int `description:"创建人id"`
  29. SysUserRealName string `description:"创建人名称"`
  30. CreateTime time.Time `description:"创建时间"`
  31. ModifyTime time.Time `description:"更新时间"`
  32. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  33. TableName string `description:"数据来源的表名"`
  34. }
  35. // 标签记录表,所有内容都不删除
  36. type WxUserRaiLabelLog struct {
  37. RaiLabelId int `orm:"column(rai_label_id);pk"`
  38. UserId int `description:"用户ID"`
  39. RealName string `description:"用户实际名称"`
  40. Mobile string `description:"手机号"`
  41. Email string `description:"邮箱"`
  42. CompanyId int `description:"公司id"`
  43. CompanyName string `description:"公司名称"`
  44. Label string `description:"标签内容"`
  45. SourceId int `description:"来源ID"`
  46. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  47. SysUserId int `description:"创建人id"`
  48. SysUserRealName string `description:"创建人名称"`
  49. CreateTime time.Time `description:"创建时间"`
  50. ModifyTime time.Time `description:"更新时间"`
  51. RegisterPlatform int `description:"来源 1小程序,2:网页"`
  52. TableName string `description:"数据来源的表名"`
  53. }
  54. // 添加
  55. func AddWxUserRaiLabel(item *WxUserRaiLabel) (err error) {
  56. o, err := orm.NewOrm().Begin()
  57. if err != nil {
  58. return
  59. }
  60. defer func() {
  61. fmt.Println(err)
  62. if err == nil {
  63. o.Commit()
  64. } else {
  65. o.Rollback()
  66. }
  67. }()
  68. //删除原有数据
  69. sql := ` DELETE FROM wx_user_rai_label WHERE user_id = ? AND label = ? `
  70. _, err = o.Raw(sql, item.UserId, item.Label).Exec()
  71. if err != nil {
  72. return
  73. }
  74. _, err = o.Insert(item)
  75. if err != nil {
  76. return
  77. }
  78. itemLog := new(WxUserRaiLabelLog)
  79. itemLog.UserId = item.UserId
  80. itemLog.RealName = item.RealName
  81. itemLog.Mobile = item.Mobile
  82. itemLog.Email = item.Email
  83. itemLog.CompanyId = item.CompanyId
  84. itemLog.CompanyName = item.CompanyName
  85. itemLog.Label = item.Label
  86. itemLog.SourceId = item.SourceId
  87. itemLog.SourceType = item.SourceType
  88. itemLog.SysUserId = item.SysUserId
  89. itemLog.SysUserRealName = item.SysUserRealName
  90. itemLog.CreateTime = item.CreateTime
  91. itemLog.ModifyTime = item.ModifyTime
  92. itemLog.RegisterPlatform = item.RegisterPlatform
  93. itemLog.TableName = item.TableName
  94. _, err = o.Insert(itemLog)
  95. return
  96. }
  97. // 批量插入
  98. func AddWxUserRaiLabelMulti(items []*WxUserRaiLabel, label []string, userId int) (err error) {
  99. o, err := orm.NewOrm().Begin()
  100. if err != nil {
  101. return
  102. }
  103. defer func() {
  104. if err == nil {
  105. o.Commit()
  106. } else {
  107. o.Rollback()
  108. }
  109. }()
  110. var itemLogs []*WxUserRaiLabelLog
  111. for _, item := range items {
  112. itemLog := new(WxUserRaiLabelLog)
  113. itemLog.UserId = item.UserId
  114. itemLog.RealName = item.RealName
  115. itemLog.Mobile = item.Mobile
  116. itemLog.Email = item.Email
  117. itemLog.CompanyId = item.CompanyId
  118. itemLog.CompanyName = item.CompanyName
  119. itemLog.Label = item.Label
  120. itemLog.SourceId = item.SourceId
  121. itemLog.SourceType = item.SourceType
  122. itemLog.SysUserId = item.SysUserId
  123. itemLog.SysUserRealName = item.SysUserRealName
  124. itemLog.CreateTime = item.CreateTime
  125. itemLog.ModifyTime = item.ModifyTime
  126. itemLog.RegisterPlatform = item.RegisterPlatform
  127. itemLog.TableName = item.TableName
  128. itemLogs = append(itemLogs, itemLog)
  129. }
  130. if len(label) > 0 {
  131. //删除老的数据信息
  132. sql := ` DELETE FROM wx_user_rai_label WHERE user_id = ? AND label IN ('` + strings.Join(label, "','") + `') `
  133. _, err = o.Raw(sql, userId).Exec()
  134. if err != nil {
  135. return
  136. }
  137. }
  138. //批量插入新的关联数据
  139. if len(items) > 0 {
  140. //批量添加流水信息
  141. _, err = o.InsertMulti(len(items), items)
  142. if err != nil {
  143. return
  144. }
  145. _, err = o.InsertMulti(len(itemLogs), itemLogs)
  146. if err != nil {
  147. return
  148. }
  149. }
  150. return
  151. }
  152. // 批量插入(脚本)
  153. func AddWxUserRaiLabelLogMultiInit(items []*WxUserRaiLabelLog) (err error) {
  154. o, err := orm.NewOrm().Begin()
  155. if err != nil {
  156. return
  157. }
  158. defer func() {
  159. if err == nil {
  160. o.Commit()
  161. } else {
  162. o.Rollback()
  163. }
  164. }()
  165. //批量插入新的关联数据
  166. if len(items) > 0 {
  167. //批量添加流水信息
  168. _, err = o.InsertMulti(len(items), items)
  169. if err != nil {
  170. return
  171. }
  172. }
  173. return
  174. }
  175. // 批量插入(脚本)
  176. func AddWxUserRaiLabelMultiInit(items []*WxUserRaiLabel) (err error) {
  177. o, err := orm.NewOrm().Begin()
  178. if err != nil {
  179. return
  180. }
  181. defer func() {
  182. if err == nil {
  183. o.Commit()
  184. } else {
  185. o.Rollback()
  186. }
  187. }()
  188. //批量插入新的关联数据
  189. if len(items) > 0 {
  190. //批量添加流水信息
  191. _, err = o.InsertMulti(len(items), items)
  192. if err != nil {
  193. return
  194. }
  195. }
  196. return
  197. }
  198. // 文章标签表(业务用不到,跑数据使用,别删)
  199. type WxUserRaiArticleLabel struct {
  200. Id int `orm:"column(id);pk"`
  201. ArticleId int `description:"报告id"`
  202. Label string `description:"标签内容"`
  203. CreateTime time.Time `description:"创建时间"`
  204. SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  205. }
  206. // 批量插入(脚本)
  207. func AddWxUserRaiArticleLabelMultiInit(items []*WxUserRaiArticleLabel) (err error) {
  208. o, err := orm.NewOrm().Begin()
  209. if err != nil {
  210. return
  211. }
  212. defer func() {
  213. if err == nil {
  214. o.Commit()
  215. } else {
  216. o.Rollback()
  217. }
  218. }()
  219. //批量插入新的关联数据
  220. if len(items) > 0 {
  221. //批量添加流水信息
  222. _, err = o.InsertMulti(len(items), items)
  223. if err != nil {
  224. return
  225. }
  226. }
  227. return
  228. }
  229. // 列表
  230. func GetWxUserRaiArticleLabelCrm16_5() (items []*WxUserRaiArticleLabel, err error) {
  231. o := orm.NewOrm()
  232. sql := `SELECT
  233. article_id
  234. FROM
  235. wx_user_rai_article_label
  236. GROUP BY
  237. article_id `
  238. _, err = o.Raw(sql).QueryRows(&items)
  239. return
  240. }
  241. // 列表
  242. func GetWxUserRaiArticleLabelAllCrm16_5() (items []*WxUserRaiArticleLabel, err error) {
  243. o := orm.NewOrm()
  244. sql := `SELECT
  245. article_id,label,source_type
  246. FROM
  247. wx_user_rai_article_label `
  248. _, err = o.Raw(sql).QueryRows(&items)
  249. return
  250. }
  251. // 列表
  252. func GetWxUserRaiLabelLogAll() (items []*WxUserRaiLabelLog, err error) {
  253. o := orm.NewOrm()
  254. sql := `SELECT
  255. *
  256. FROM
  257. wx_user_rai_label_log `
  258. _, err = o.Raw(sql).QueryRows(&items)
  259. return
  260. }