wx_user_rai_label.go 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955
  1. package services
  2. import (
  3. "encoding/json"
  4. "errors"
  5. "fmt"
  6. "hongze/hongze_cygx/models"
  7. "hongze/hongze_cygx/models/roadshow"
  8. "hongze/hongze_cygx/utils"
  9. "strconv"
  10. "time"
  11. )
  12. // 添加用户搜索标签到Redis
  13. func KeyWordsWxUserRaiLabelRedisAdd(sourceId, uid int, label string) (err error) {
  14. defer func() {
  15. if err != nil {
  16. fmt.Println(err)
  17. msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
  18. go utils.SendAlarmMsg("用户关注产业更新相关标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
  19. }
  20. }()
  21. log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 1, Label: label, CreateTime: time.Now(), RegisterPlatform: utils.REGISTER_PLATFORM}
  22. if utils.Re == nil {
  23. err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
  24. if err != nil {
  25. fmt.Println("WxUserRaiLabelRedis LPush Err:" + err.Error())
  26. }
  27. }
  28. return
  29. }
  30. // 添加用户阅读文章标签到Redis
  31. func ArticleWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time) (err error) {
  32. defer func() {
  33. if err != nil {
  34. fmt.Println(err)
  35. msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
  36. go utils.SendAlarmMsg("用户关注产业更新相关标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
  37. }
  38. }()
  39. log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 1, TableName: utils.CYGX_OBJ_ARTICLE, CreateTime: createTime, RegisterPlatform: utils.REGISTER_PLATFORM}
  40. if utils.Re == nil {
  41. err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
  42. if err != nil {
  43. fmt.Println("WxUserRaiLabelRedis LPush Err:" + err.Error())
  44. }
  45. }
  46. return
  47. }
  48. // 添加用户阅读本周研究汇总,与重点公司标签到Redis
  49. func ReportSelectionWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time, tableName, label string) (err error) {
  50. defer func() {
  51. if err != nil {
  52. fmt.Println(err)
  53. msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
  54. go utils.SendAlarmMsg("用户关注产业更新相关标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
  55. }
  56. }()
  57. log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 1, TableName: tableName, Label: label, CreateTime: createTime, RegisterPlatform: utils.REGISTER_PLATFORM}
  58. if utils.Re == nil {
  59. err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
  60. if err != nil {
  61. fmt.Println("ReportSelectionWxUserRaiLabelRedisAdd LPush Err:" + err.Error())
  62. }
  63. }
  64. return
  65. }
  66. // 添加用户参加活动标签到Redis
  67. func ActivityWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time) (err error) {
  68. defer func() {
  69. if err != nil {
  70. fmt.Println(err)
  71. msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
  72. go utils.SendAlarmMsg("添加用户参加活动标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
  73. }
  74. }()
  75. log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 2, CreateTime: createTime, RegisterPlatform: utils.REGISTER_PLATFORM}
  76. if utils.Re == nil {
  77. err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
  78. if err != nil {
  79. fmt.Println("ActivityWxUserRaiLabelRedisAdd LPush Err:" + err.Error())
  80. }
  81. }
  82. return
  83. }
  84. // 添加用户播放活动音视频标签到Redis
  85. func ActivityVivoWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time) (err error) {
  86. defer func() {
  87. if err != nil {
  88. fmt.Println(err)
  89. msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
  90. go utils.SendAlarmMsg("添加用户参加活动标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
  91. }
  92. }()
  93. log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 9, CreateTime: createTime, RegisterPlatform: utils.REGISTER_PLATFORM}
  94. if utils.Re == nil {
  95. err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
  96. if err != nil {
  97. fmt.Println("ActivityWxUserRaiLabelRedisAdd LPush Err:" + err.Error())
  98. }
  99. }
  100. return
  101. }
  102. func UpdateWxUserRaiLabelRedis() (err error) {
  103. for {
  104. // SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
  105. utils.Rc.Brpop(utils.WX_USER_RAI_LABEL_KEY, func(b []byte) {
  106. var log models.WxUserRaiLabelRedis
  107. if err := json.Unmarshal(b, &log); err != nil {
  108. fmt.Println("json unmarshal wrong!")
  109. go utils.SendAlarmMsg("用户更新相关标签处理Redis队列消息失败:"+err.Error()+string(b), 2)
  110. }
  111. if log.TableName == "" {
  112. switch log.SourceType {
  113. case 1:
  114. go KeyWordsWxUserRaiLabelRedisAddReduce(log)
  115. fmt.Println("搜索关键词")
  116. break
  117. case 2, 4:
  118. go ActivityWxUserRaiLabelRedisAddReduce(log)
  119. fmt.Println("活动到会")
  120. break
  121. case 3, 5:
  122. go RoadshowWxUserRaiLabelRedisAddReduce(log)
  123. fmt.Println("活动到会")
  124. break
  125. case 9:
  126. go ActivityVivoWxUserRaiLabelRedisAddReduce(log)
  127. fmt.Println("活动音视频播放")
  128. break
  129. default:
  130. fmt.Println(string(b))
  131. go utils.SendAlarmMsg("用户更新相关标签处理Redis队列消息失败:"+string(b), 2)
  132. }
  133. } else {
  134. switch log.TableName {
  135. case utils.CYGX_OBJ_ARTICLE:
  136. go ArticleWxUserRaiLabelRedisAddReduce(log)
  137. fmt.Println("阅读文章")
  138. case "cygx_research_summary":
  139. go ReportSelectionWxUserRaiLabelRedisAddReduce(log)
  140. fmt.Println("阅读本周研究汇总")
  141. case "cygx_report_selection":
  142. go ReportSelectionWxUserRaiLabelRedisAddReduce(log)
  143. fmt.Println("阅读报告精选(重点公司)")
  144. }
  145. }
  146. })
  147. }
  148. }
  149. // 1:搜索关键词
  150. func KeyWordsWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
  151. defer func() {
  152. if err != nil {
  153. fmt.Println(err)
  154. go utils.SendAlarmMsg("用户文章阅读更新相关标签,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("articleId", log.SourceId, "userId", log.UserId), 2)
  155. }
  156. }()
  157. userId := log.UserId
  158. label := log.Label
  159. if userId == 0 {
  160. return
  161. }
  162. wxUser, e := models.GetWxUserItemByUserId(userId)
  163. if e != nil {
  164. err = errors.New("GetWxUserItemByUserId" + e.Error())
  165. return
  166. }
  167. item := new(models.WxUserRaiLabel)
  168. item.UserId = wxUser.UserId
  169. item.RealName = wxUser.RealName
  170. item.Mobile = wxUser.Mobile
  171. item.Email = wxUser.Email
  172. item.CompanyId = wxUser.CompanyId
  173. item.CompanyName = wxUser.CompanyName
  174. item.Label = label
  175. item.SourceType = log.SourceType
  176. item.CreateTime = log.CreateTime
  177. item.ModifyTime = time.Now()
  178. item.RegisterPlatform = log.RegisterPlatform
  179. err = models.AddWxUserRaiLabel(item)
  180. if e != nil {
  181. err = errors.New("AddWxUserRaiLabel" + e.Error())
  182. return
  183. }
  184. return
  185. }
  186. //func init() {
  187. // log := models.WxUserRaiLabelRedis{UserId: 53840, SourceId: 1753, SourceType: 3, TableName: "", Label: "", CreateTime: time.Now(), RegisterPlatform: utils.REGISTER_PLATFORM}
  188. // RoadshowWxUserRaiLabelRedisAddReduce(log)
  189. //}
  190. // 2:产业/个股标签(线下活动)、 4:产业/个股标签(线上活动)
  191. // 用户参加活动,相关标签
  192. func ActivityWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
  193. defer func() {
  194. if err != nil {
  195. fmt.Println(err)
  196. go utils.SendAlarmMsg("用户参加活动,相关标签,处理Redis队列消息失败:ActivityWxUserRaiLabelRedisAddReduce"+err.Error()+fmt.Sprint("SourceId", log.SourceId, "userId", log.UserId), 2)
  197. }
  198. }()
  199. userId := log.UserId
  200. sourceId := log.SourceId
  201. wxUser, e := models.GetWxUserItemByUserId(userId)
  202. if e != nil {
  203. err = errors.New("GetWxUserItemByUserId" + e.Error())
  204. return
  205. }
  206. activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
  207. if e != nil {
  208. err = errors.New("GetArticleDetailTestById" + e.Error())
  209. return
  210. }
  211. var sourceType int
  212. if activityDetail.ActivityType == 1 {
  213. sourceType = 4
  214. } else {
  215. sourceType = 2
  216. }
  217. //正常的有产业报告
  218. var labelArr []string
  219. //建立首页资源表,与产业的关系
  220. industrialList, e := models.GetIndustrialActivityGroupManagementListByActivityId(sourceId)
  221. if e != nil && e.Error() != utils.ErrNoRow() {
  222. err = errors.New("GetIndustrialArticleGroupManagementListByArticleId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
  223. return
  224. }
  225. var items []*models.WxUserRaiLabel
  226. for _, v := range industrialList {
  227. item := new(models.WxUserRaiLabel)
  228. item.UserId = wxUser.UserId
  229. item.RealName = wxUser.RealName
  230. item.Mobile = wxUser.Mobile
  231. item.Email = wxUser.Email
  232. item.CompanyId = wxUser.CompanyId
  233. item.CompanyName = wxUser.CompanyName
  234. item.Label = v.IndustryName
  235. item.SourceType = sourceType
  236. item.SourceId = sourceId
  237. item.CreateTime = log.CreateTime
  238. item.ModifyTime = time.Now()
  239. item.RegisterPlatform = log.RegisterPlatform
  240. item.TableName = ""
  241. items = append(items, item)
  242. labelArr = append(labelArr, v.IndustryName)
  243. }
  244. //建立首页资源表,与标的 的关系
  245. subjectList, e := models.GetSubjectActivityGroupManagementListByActivityId(sourceId)
  246. if e != nil && e.Error() != utils.ErrNoRow() {
  247. err = errors.New("GetSubjectArticleGroupManagementListByArtcileId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
  248. return
  249. }
  250. //fmt.Println("subjectList", subjectList)
  251. for _, v := range subjectList {
  252. item := new(models.WxUserRaiLabel)
  253. item.UserId = wxUser.UserId
  254. item.RealName = wxUser.RealName
  255. item.Mobile = wxUser.Mobile
  256. item.Email = wxUser.Email
  257. item.CompanyId = wxUser.CompanyId
  258. item.CompanyName = wxUser.CompanyName
  259. item.Label = v.SubjectName
  260. item.SourceType = sourceType
  261. item.SourceId = sourceId
  262. item.CreateTime = log.CreateTime
  263. item.ModifyTime = time.Now()
  264. item.RegisterPlatform = log.RegisterPlatform
  265. item.TableName = ""
  266. items = append(items, item)
  267. labelArr = append(labelArr, v.SubjectName)
  268. }
  269. //如果两个标签都没有,就添加临时标签
  270. if len(labelArr) == 0 {
  271. item := new(models.WxUserRaiLabel)
  272. item.UserId = wxUser.UserId
  273. item.RealName = wxUser.RealName
  274. item.Mobile = wxUser.Mobile
  275. item.Email = wxUser.Email
  276. item.CompanyId = wxUser.CompanyId
  277. item.CompanyName = wxUser.CompanyName
  278. item.Label = activityDetail.Label
  279. item.SourceType = sourceType
  280. item.SourceId = sourceId
  281. item.CreateTime = log.CreateTime
  282. item.ModifyTime = time.Now()
  283. item.RegisterPlatform = log.RegisterPlatform
  284. item.TableName = ""
  285. items = append(items, item)
  286. labelArr = append(labelArr, activityDetail.Label)
  287. }
  288. e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
  289. if e != nil {
  290. err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
  291. return
  292. }
  293. return
  294. }
  295. // 3:产业/个股标签(路演线下活动)、 5:产业/个股标签(路演线上活动)
  296. // 用户参加路演,相关标签
  297. func RoadshowWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
  298. defer func() {
  299. if err != nil {
  300. fmt.Println(err)
  301. go utils.SendAlarmMsg("用户参加路演,相关标签,处理Redis队列消息失败:RoadshowWxUserRaiLabelRedisAddReduce"+err.Error()+fmt.Sprint("SourceId", log.SourceId, "userId", log.UserId), 2)
  302. }
  303. }()
  304. userId := log.UserId
  305. sourceId := log.SourceId
  306. wxUser, e := models.GetWxUserItemByUserId(userId)
  307. if e != nil {
  308. err = errors.New("GetWxUserItemByUserId" + e.Error())
  309. return
  310. }
  311. rsCalendar, e := roadshow.GetRsCalendarById(sourceId)
  312. if e != nil {
  313. err = errors.New("GetRsCalendarById" + e.Error())
  314. return
  315. }
  316. var sourceType int
  317. if rsCalendar.RoadshowType == "线下" {
  318. sourceType = 3
  319. } else {
  320. sourceType = 5
  321. }
  322. totalGroup, e := roadshow.GetRsCalendarMeetingLabelGroupByRsCalendarId(sourceId)
  323. if e != nil {
  324. err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
  325. return
  326. }
  327. //var lebelDetail []*cygx.RaiServeTagResp
  328. var label string
  329. var labelArr []string
  330. var items []*models.WxUserRaiLabel
  331. if totalGroup > 0 {
  332. listGroup, e := roadshow.GetRsCalendarMeetingLabelGroupListByRsCalendarId(sourceId)
  333. if e != nil {
  334. err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
  335. return
  336. }
  337. var industrialManagementIds []int
  338. var industrialSubjectIds []int
  339. mapindustrialManagementName := make(map[int]string)
  340. mapindustrialSubjectName := make(map[int]string)
  341. mapCelueName := make(map[int]string)
  342. for _, v := range listGroup {
  343. switch v.TagType {
  344. case 1:
  345. industrialManagementIds = append(industrialManagementIds, v.TagId)
  346. case 2:
  347. industrialSubjectIds = append(industrialSubjectIds, v.TagId)
  348. case 3:
  349. mapCelueName[v.TagId] = "策略"
  350. }
  351. }
  352. if len(industrialManagementIds) > 0 {
  353. IndustryList, e := models.GetIndustryListByConditionByIds(industrialManagementIds)
  354. if e != nil {
  355. err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
  356. return
  357. }
  358. for _, v := range IndustryList {
  359. mapindustrialManagementName[v.IndustrialManagementId] = v.IndustryName
  360. }
  361. }
  362. if len(industrialSubjectIds) > 0 {
  363. SubjectList, e := models.GetIndustrialSubjectDetailByIds(industrialSubjectIds)
  364. if e != nil {
  365. err = errors.New("GetIndustrialSubjectDetailByIds" + e.Error())
  366. return
  367. }
  368. for _, v := range SubjectList {
  369. mapindustrialSubjectName[v.IndustrialSubjectId] = v.SubjectName
  370. }
  371. }
  372. for _, v := range listGroup {
  373. switch v.TagType {
  374. case 1:
  375. label = mapindustrialManagementName[v.TagId]
  376. case 2:
  377. label = mapindustrialSubjectName[v.TagId]
  378. case 3:
  379. label = mapCelueName[v.TagId]
  380. }
  381. item := new(models.WxUserRaiLabel)
  382. item.UserId = wxUser.UserId
  383. item.RealName = wxUser.RealName
  384. item.Mobile = wxUser.Mobile
  385. item.Email = wxUser.Email
  386. item.CompanyId = wxUser.CompanyId
  387. item.CompanyName = wxUser.CompanyName
  388. item.Label = label
  389. item.SourceType = sourceType
  390. item.SourceId = sourceId
  391. item.CreateTime = log.CreateTime
  392. item.ModifyTime = time.Now()
  393. item.RegisterPlatform = log.RegisterPlatform
  394. item.TableName = ""
  395. items = append(items, item)
  396. labelArr = append(labelArr, label)
  397. }
  398. }
  399. e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
  400. if e != nil {
  401. err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
  402. return
  403. }
  404. return
  405. }
  406. // 7:产业/个股标签(报告)、8:报告类型标签
  407. func ArticleWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
  408. defer func() {
  409. if err != nil {
  410. fmt.Println(err)
  411. go utils.SendAlarmMsg("用户文章阅读更新相关标签,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("articleId", log.SourceId, "userId", log.UserId), 2)
  412. }
  413. }()
  414. userId := log.UserId
  415. sourceId := log.SourceId
  416. wxUser, e := models.GetWxUserItemByUserId(userId)
  417. if e != nil {
  418. err = errors.New("GetWxUserItemByUserId" + e.Error())
  419. return
  420. }
  421. //articleDetail, e := models.GetArticleDetailTestById(sourceId)
  422. //if e != nil {
  423. // err = errors.New("GetArticleDetailTestById" + e.Error())
  424. // return
  425. //}
  426. labelArr, sourceType := GetArticlelabelArrByArticleId(sourceId)
  427. if len(labelArr) == 0 {
  428. return
  429. }
  430. var items []*models.WxUserRaiLabel
  431. for _, v := range labelArr {
  432. item := new(models.WxUserRaiLabel)
  433. item.UserId = wxUser.UserId
  434. item.RealName = wxUser.RealName
  435. item.Mobile = wxUser.Mobile
  436. item.Email = wxUser.Email
  437. item.CompanyId = wxUser.CompanyId
  438. item.CompanyName = wxUser.CompanyName
  439. item.Label = v
  440. item.SourceType = sourceType
  441. item.SourceId = sourceId
  442. item.CreateTime = log.CreateTime
  443. item.ModifyTime = time.Now()
  444. item.RegisterPlatform = log.RegisterPlatform
  445. item.TableName = "cygx_article"
  446. items = append(items, item)
  447. //labelArr = append(labelArr, v.IndustryName)
  448. }
  449. //articlePermission, e := models.GetArticlePermission(articleDetail.CategoryId)
  450. //if e != nil {
  451. // err = errors.New("GetArticlePermission" + e.Error())
  452. // return
  453. //}
  454. //if articlePermission == nil {
  455. // err = errors.New("报告权限不存在" + e.Error())
  456. // return
  457. //}
  458. //articlePermissionName := articlePermission.PermissionName
  459. //matchTypeName := articlePermission.MatchTypeName
  460. //matchTypeNameArr := []string{"季度策略", "科技前沿(周报)", "本周荟", "智造精粹"}
  461. //
  462. ////1;四大行业汇总类报告:季度策略、科技前沿(周报)、本周荟、智造精粹以报告类型做标签
  463. ////2:策略、固收的所有报告,以报告类型做标签
  464. //if articlePermissionName == utils.CE_LUE_NAME || articlePermissionName == utils.GU_SHOU_NAME || utils.InArrayByStr(matchTypeNameArr, matchTypeName) { // 策略、固收的所有报告,以报告类型做标签
  465. // if matchTypeName == "季度策略" {
  466. // matchTypeName = articlePermissionName + matchTypeName //其中季度策略以:xx行业季度策略 呈现
  467. // }
  468. // item := new(models.WxUserRaiLabel)
  469. // item.UserId = wxUser.UserId
  470. // item.RealName = wxUser.RealName
  471. // item.Mobile = wxUser.Mobile
  472. // item.Email = wxUser.Email
  473. // item.CompanyId = wxUser.CompanyId
  474. // item.CompanyName = wxUser.CompanyName
  475. // item.Label = matchTypeName
  476. // item.SourceType = 8
  477. // item.SourceId = sourceId
  478. // item.CreateTime = log.CreateTime
  479. // item.ModifyTime = time.Now()
  480. // item.RegisterPlatform = log.RegisterPlatform
  481. // item.TableName = "cygx_article"
  482. // err = models.AddWxUserRaiLabel(item)
  483. // if e != nil {
  484. // err = errors.New("AddWxUserRaiLabel" + e.Error())
  485. // return
  486. // }
  487. //} else if articlePermissionName == utils.ZHOU_QI_NAME {
  488. // //周期的行业深度、调研纪要、产业跟踪这些系列的报告用领域做标签,其余的周期报告,都用报告类型(也就是ficc定义的类型)做标签
  489. // //其中周期的周度观点,以 周期周度观点 呈现
  490. // matchTypeNameArrZhouqi := []string{"行业深度", "调研纪要", "产业跟踪"}
  491. // if utils.InArrayByStr(matchTypeNameArrZhouqi, matchTypeName) {
  492. // matchTypeName = articleDetail.FieldName
  493. // }
  494. // item := new(models.WxUserRaiLabel)
  495. // item.UserId = wxUser.UserId
  496. // item.RealName = wxUser.RealName
  497. // item.Mobile = wxUser.Mobile
  498. // item.Email = wxUser.Email
  499. // item.CompanyId = wxUser.CompanyId
  500. // item.CompanyName = wxUser.CompanyName
  501. // item.Label = matchTypeName
  502. // item.SourceType = 8
  503. // item.SourceId = sourceId
  504. // item.CreateTime = log.CreateTime
  505. // item.ModifyTime = time.Now()
  506. // item.RegisterPlatform = log.RegisterPlatform
  507. // item.TableName = "cygx_article"
  508. // e = models.AddWxUserRaiLabel(item)
  509. // if e != nil {
  510. // err = errors.New("AddWxUserRaiLabel" + e.Error())
  511. // return
  512. // }
  513. //} else {
  514. // //正常的有产业报告
  515. // var labelArr []string
  516. // //建立首页资源表,与产业的关系
  517. // industrialList, e := models.GetIndustrialArticleGroupManagementListByArticleId(sourceId)
  518. // if e != nil && e.Error() != utils.ErrNoRow() {
  519. // err = errors.New("GetIndustrialArticleGroupManagementListByArticleId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
  520. // return
  521. // }
  522. //
  523. // var items []*models.WxUserRaiLabel
  524. // for _, v := range industrialList {
  525. // item := new(models.WxUserRaiLabel)
  526. // item.UserId = wxUser.UserId
  527. // item.RealName = wxUser.RealName
  528. // item.Mobile = wxUser.Mobile
  529. // item.Email = wxUser.Email
  530. // item.CompanyId = wxUser.CompanyId
  531. // item.CompanyName = wxUser.CompanyName
  532. // item.Label = v.IndustryName
  533. // item.SourceType = 7
  534. // item.SourceId = sourceId
  535. // item.CreateTime = log.CreateTime
  536. // item.ModifyTime = time.Now()
  537. // item.RegisterPlatform = log.RegisterPlatform
  538. // item.TableName = "cygx_article"
  539. // items = append(items, item)
  540. // labelArr = append(labelArr, v.IndustryName)
  541. // }
  542. //
  543. // //建立首页资源表,与标的 的关系
  544. // subjectList, e := models.GetSubjectArticleGroupManagementListByArtcileId(sourceId)
  545. // if e != nil && e.Error() != utils.ErrNoRow() {
  546. // err = errors.New("GetSubjectArticleGroupManagementListByArtcileId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
  547. // return
  548. // }
  549. //
  550. // for _, v := range subjectList {
  551. // item := new(models.WxUserRaiLabel)
  552. // item.UserId = wxUser.UserId
  553. // item.RealName = wxUser.RealName
  554. // item.Mobile = wxUser.Mobile
  555. // item.Email = wxUser.Email
  556. // item.CompanyId = wxUser.CompanyId
  557. // item.CompanyName = wxUser.CompanyName
  558. // item.Label = v.SubjectName
  559. // item.SourceType = 7
  560. // item.SourceId = sourceId
  561. // item.CreateTime = log.CreateTime
  562. // item.ModifyTime = time.Now()
  563. // item.RegisterPlatform = log.RegisterPlatform
  564. // item.TableName = "cygx_article"
  565. // items = append(items, item)
  566. // labelArr = append(labelArr, v.SubjectName)
  567. // }
  568. // e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
  569. // if e != nil {
  570. // err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
  571. // return
  572. // }
  573. //}
  574. e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
  575. if e != nil {
  576. err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
  577. return
  578. }
  579. return
  580. }
  581. // 8:报告类型标签 (本周研究汇总,与重点公司)
  582. func ReportSelectionWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
  583. defer func() {
  584. if err != nil {
  585. fmt.Println(err)
  586. go utils.SendAlarmMsg("报告类型标签 (本周研究汇总,与重点公司),处理Redis队列消息失败:ReportSelectionWxUserRaiLabelRedisAddReduce"+err.Error()+fmt.Sprint("SourceId", log.SourceId, "userId", log.UserId), 2)
  587. }
  588. }()
  589. userId := log.UserId
  590. sourceId := log.SourceId
  591. wxUser, e := models.GetWxUserItemByUserId(userId)
  592. if e != nil {
  593. err = errors.New("GetWxUserItemByUserId" + e.Error())
  594. return
  595. }
  596. item := new(models.WxUserRaiLabel)
  597. item.UserId = wxUser.UserId
  598. item.RealName = wxUser.RealName
  599. item.Mobile = wxUser.Mobile
  600. item.Email = wxUser.Email
  601. item.CompanyId = wxUser.CompanyId
  602. item.CompanyName = wxUser.CompanyName
  603. item.Label = log.Label
  604. item.SourceType = 8
  605. item.SourceId = sourceId
  606. item.CreateTime = log.CreateTime
  607. item.ModifyTime = time.Now()
  608. item.RegisterPlatform = log.RegisterPlatform
  609. item.TableName = log.TableName
  610. err = models.AddWxUserRaiLabel(item)
  611. if e != nil {
  612. err = errors.New("AddWxUserRaiLabel" + e.Error())
  613. return
  614. }
  615. return
  616. }
  617. // 9:活动音视频回放标签处理
  618. func ActivityVivoWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
  619. defer func() {
  620. if err != nil {
  621. fmt.Println(err)
  622. go utils.SendAlarmMsg("用户查看活动音视频回放,相关标签,处理Redis队列消息失败:ActivityVivoWxUserRaiLabelRedisAddReduce"+err.Error()+fmt.Sprint("SourceId", log.SourceId, "userId", log.UserId), 2)
  623. }
  624. }()
  625. userId := log.UserId
  626. sourceId := log.SourceId
  627. wxUser, e := models.GetWxUserItemByUserId(userId)
  628. if e != nil {
  629. err = errors.New("GetWxUserItemByUserId" + e.Error())
  630. return
  631. }
  632. activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
  633. if e != nil {
  634. err = errors.New("GetAddActivityDetailByActivityId" + e.Error())
  635. return
  636. }
  637. var sourceType int
  638. sourceType = 9
  639. //正常的有产业报告
  640. var labelArr []string
  641. //建立首页资源表,与产业的关系
  642. industrialList, e := models.GetIndustrialActivityGroupManagementListByActivityId(sourceId)
  643. if e != nil && e.Error() != utils.ErrNoRow() {
  644. err = errors.New("GetIndustrialActivityGroupManagementListByActivityId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
  645. return
  646. }
  647. var items []*models.WxUserRaiLabel
  648. for _, v := range industrialList {
  649. item := new(models.WxUserRaiLabel)
  650. item.UserId = wxUser.UserId
  651. item.RealName = wxUser.RealName
  652. item.Mobile = wxUser.Mobile
  653. item.Email = wxUser.Email
  654. item.CompanyId = wxUser.CompanyId
  655. item.CompanyName = wxUser.CompanyName
  656. item.Label = v.IndustryName
  657. item.SourceType = sourceType
  658. item.SourceId = sourceId
  659. item.CreateTime = log.CreateTime
  660. item.ModifyTime = time.Now()
  661. item.RegisterPlatform = log.RegisterPlatform
  662. item.TableName = ""
  663. items = append(items, item)
  664. labelArr = append(labelArr, v.IndustryName)
  665. }
  666. //建立首页资源表,与标的 的关系
  667. subjectList, e := models.GetSubjectActivityGroupManagementListByActivityId(sourceId)
  668. if e != nil && e.Error() != utils.ErrNoRow() {
  669. err = errors.New("GetSubjectActivityGroupManagementListByActivityId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
  670. return
  671. }
  672. //fmt.Println("subjectList", subjectList)
  673. for _, v := range subjectList {
  674. item := new(models.WxUserRaiLabel)
  675. item.UserId = wxUser.UserId
  676. item.RealName = wxUser.RealName
  677. item.Mobile = wxUser.Mobile
  678. item.Email = wxUser.Email
  679. item.CompanyId = wxUser.CompanyId
  680. item.CompanyName = wxUser.CompanyName
  681. item.Label = v.SubjectName
  682. item.SourceType = sourceType
  683. item.SourceId = sourceId
  684. item.CreateTime = log.CreateTime
  685. item.ModifyTime = time.Now()
  686. item.RegisterPlatform = log.RegisterPlatform
  687. item.TableName = ""
  688. items = append(items, item)
  689. labelArr = append(labelArr, v.SubjectName)
  690. }
  691. //如果两个标签都没有,就添加临时标签
  692. if len(labelArr) == 0 {
  693. item := new(models.WxUserRaiLabel)
  694. item.UserId = wxUser.UserId
  695. item.RealName = wxUser.RealName
  696. item.Mobile = wxUser.Mobile
  697. item.Email = wxUser.Email
  698. item.CompanyId = wxUser.CompanyId
  699. item.CompanyName = wxUser.CompanyName
  700. item.Label = activityDetail.Label
  701. item.SourceType = sourceType
  702. item.SourceId = sourceId
  703. item.CreateTime = log.CreateTime
  704. item.ModifyTime = time.Now()
  705. item.RegisterPlatform = log.RegisterPlatform
  706. item.TableName = ""
  707. items = append(items, item)
  708. labelArr = append(labelArr, activityDetail.Label)
  709. }
  710. e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
  711. if e != nil {
  712. err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
  713. return
  714. }
  715. return
  716. }
  717. //func init() {
  718. // fmt.Println(GetArticlelabelArrByArticleId(11796))
  719. //}
  720. func GetArticlelabelArrByArticleId(articleId int) (labelArr []string, sourceType int) {
  721. articleDetail, e := models.GetArticleDetailTestById(articleId)
  722. if e != nil {
  723. fmt.Println(e)
  724. return
  725. }
  726. if articleDetail.ArticleTypeId > 0 {
  727. //正常的有产业报告
  728. //建立首页资源表,与产业的关系
  729. industrialList, e := models.GetIndustrialArticleGroupManagementListByArticleId(articleId)
  730. if e != nil && e.Error() != utils.ErrNoRow() {
  731. fmt.Println(e)
  732. return
  733. }
  734. for _, v := range industrialList {
  735. labelArr = append(labelArr, v.IndustryName)
  736. }
  737. //建立首页资源表,与标的 的关系
  738. subjectList, e := models.GetSubjectArticleGroupManagementListByArtcileId(articleId)
  739. if e != nil && e.Error() != utils.ErrNoRow() {
  740. fmt.Println(e)
  741. return
  742. }
  743. for _, v := range subjectList {
  744. labelArr = append(labelArr, v.SubjectName)
  745. }
  746. sourceType = 7
  747. return
  748. }
  749. articlePermission, e := models.GetArticlePermission(articleDetail.CategoryId)
  750. if e != nil {
  751. fmt.Println(e)
  752. return
  753. }
  754. if articlePermission == nil {
  755. fmt.Println(e)
  756. return
  757. }
  758. articlePermissionName := articlePermission.PermissionName
  759. subCategoryName := articleDetail.SubCategoryName
  760. matchTypeNameArr := []string{"季度策略", "科技前言(周报)", "本周荟", "智造精粹"}
  761. //fmt.Println(subCategoryName)
  762. //1;四大行业汇总类报告:季度策略、科技前沿(周报)、本周荟、智造精粹以报告类型做标签
  763. //2:策略、固收的所有报告,以报告类型做标签
  764. //var labelArr []string
  765. if articlePermissionName == utils.CE_LUE_NAME || articlePermissionName == utils.GU_SHOU_NAME || utils.InArrayByStr(matchTypeNameArr, subCategoryName) { // 策略、固收的所有报告,以报告类型做标签
  766. if subCategoryName == "季度策略" {
  767. subCategoryName = articlePermissionName + subCategoryName //其中季度策略以:xx行业季度策略 呈现
  768. }
  769. labelArr = append(labelArr, subCategoryName)
  770. sourceType = 8
  771. } else if articlePermissionName == utils.ZHOU_QI_NAME {
  772. //周期的行业深度、调研纪要、产业跟踪这些系列的报告用领域做标签,其余的周期报告,都用报告类型(也就是ficc定义的类型)做标签
  773. //其中周期的周度观点,以 周期周度观点 呈现
  774. matchTypeNameArrZhouqi := []string{"行业深度", "调研纪要", "产业跟踪"}
  775. if utils.InArrayByStr(matchTypeNameArrZhouqi, subCategoryName) {
  776. subCategoryName = articleDetail.FieldName
  777. }
  778. labelArr = append(labelArr, subCategoryName)
  779. sourceType = 8
  780. } else {
  781. //正常的有产业报告
  782. //建立首页资源表,与产业的关系
  783. industrialList, e := models.GetIndustrialArticleGroupManagementListByArticleId(articleId)
  784. if e != nil && e.Error() != utils.ErrNoRow() {
  785. fmt.Println(e)
  786. return
  787. }
  788. for _, v := range industrialList {
  789. labelArr = append(labelArr, v.IndustryName)
  790. }
  791. //建立首页资源表,与标的 的关系
  792. subjectList, e := models.GetSubjectArticleGroupManagementListByArtcileId(articleId)
  793. if e != nil && e.Error() != utils.ErrNoRow() {
  794. fmt.Println(e)
  795. return
  796. }
  797. for _, v := range subjectList {
  798. labelArr = append(labelArr, v.SubjectName)
  799. }
  800. sourceType = 7
  801. }
  802. return
  803. }
  804. //func init() {
  805. // //fmt.Println(GetArticlelabelArrByArticleId(11037))
  806. // initCrm16_5ActivityVivo()
  807. //}
  808. func initCrm16_5keyWord() {
  809. listKeyWords, err := models.GetSearchKeyWordinitCrm16_5()
  810. if err != nil {
  811. fmt.Println(err)
  812. return
  813. }
  814. var mobiles []string
  815. mapMobile := make(map[string]bool)
  816. for _, v := range listKeyWords {
  817. if mapMobile[v.Mobile] || v.Mobile == "" {
  818. continue
  819. }
  820. mapMobile[v.Mobile] = true
  821. mobiles = append(mobiles, v.Mobile)
  822. }
  823. listUser, err := models.GetWxUserListByMobileArr(mobiles)
  824. if err != nil {
  825. fmt.Println(err)
  826. return
  827. }
  828. mapUser := make(map[string]*models.WxUserItem)
  829. for _, v := range listUser {
  830. mapUser[v.Mobile] = v
  831. }
  832. var items []*models.WxUserRaiLabelLog
  833. for _, v := range listKeyWords {
  834. if mapUser[v.Mobile] == nil || v.Mobile == "" {
  835. continue
  836. }
  837. wxUser := mapUser[v.Mobile]
  838. item := new(models.WxUserRaiLabelLog)
  839. item.UserId = wxUser.UserId
  840. item.RealName = wxUser.RealName
  841. item.Mobile = wxUser.Mobile
  842. item.Email = wxUser.Email
  843. item.CompanyId = wxUser.CompanyId
  844. item.CompanyName = wxUser.CompanyName
  845. item.Label = v.KeyWord
  846. item.SourceType = 1
  847. item.CreateTime = v.CreateTime
  848. item.ModifyTime = time.Now()
  849. item.RegisterPlatform = v.RegisterPlatform
  850. items = append(items, item)
  851. }
  852. fmt.Println(len(items))
  853. var itemsAdd []*models.WxUserRaiLabelLog
  854. if len(items) > 0 {
  855. for _, v := range items {
  856. itemsAdd = append(itemsAdd, v)
  857. if len(itemsAdd)%2000 == 0 {
  858. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  859. if err != nil {
  860. fmt.Println(err)
  861. return
  862. }
  863. itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
  864. }
  865. }
  866. }
  867. if len(itemsAdd) > 0 {
  868. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  869. if err != nil {
  870. fmt.Println(err)
  871. return
  872. }
  873. }
  874. fmt.Println("endAddWxUserRaiLabelLogMultiInit")
  875. }
  876. func initCrm16_5Activity() {
  877. var condition string
  878. var pars []interface{}
  879. condition += ` AND create_time > '2024-09-01' AND (is_meeting =1 OR duration != '') `
  880. pars = append(pars)
  881. //获取提交到会的人员信息
  882. signUpDetailList, err := models.GetSignupDetailList(condition, pars)
  883. if err != nil {
  884. fmt.Println(err)
  885. return
  886. }
  887. var mobiles []string
  888. mapMobile := make(map[string]bool)
  889. for _, v := range signUpDetailList {
  890. if mapMobile[v.Mobile] || v.Mobile == "" {
  891. continue
  892. }
  893. mapMobile[v.Mobile] = true
  894. mobiles = append(mobiles, v.Mobile)
  895. }
  896. var activityIds []int
  897. mapactivityId := make(map[int]bool)
  898. for _, v := range signUpDetailList {
  899. if mapactivityId[v.ActivityId] {
  900. continue
  901. }
  902. mapactivityId[v.ActivityId] = true
  903. activityIds = append(activityIds, v.ActivityId)
  904. }
  905. listUser, err := models.GetWxUserListByMobileArr(mobiles)
  906. if err != nil {
  907. fmt.Println(err)
  908. return
  909. }
  910. mapUser := make(map[string]*models.WxUserItem)
  911. for _, v := range listUser {
  912. mapUser[v.Mobile] = v
  913. }
  914. activityDetailList, e := models.GetAddActivityDetailByActivityIdinitCrm16_5(activityIds)
  915. if e != nil {
  916. fmt.Println(e)
  917. return
  918. }
  919. sourceTypemap := make(map[int]int)
  920. mapLabel := make(map[int]string)
  921. for _, v := range activityDetailList {
  922. if v.ActivityType == 1 {
  923. sourceTypemap[v.ActivityId] = 4
  924. } else {
  925. sourceTypemap[v.ActivityId] = 2
  926. }
  927. mapLabel[v.ActivityId] = v.Label
  928. }
  929. //正常的有产业报告
  930. //建立首页资源表,与产业的关系
  931. industrialList, e := models.GetIndustrialActivityGroupManagementListByArticleIds(activityIds)
  932. if e != nil && e.Error() != utils.ErrNoRow() {
  933. fmt.Println(e)
  934. return
  935. }
  936. //建立首页资源表,与标的 的关系
  937. subjectList, e := models.GetSubjectActivityGroupManagementListByActivityIds(activityIds)
  938. if e != nil && e.Error() != utils.ErrNoRow() {
  939. fmt.Println(e)
  940. return
  941. }
  942. var items []*models.WxUserRaiLabelLog
  943. for _, v := range signUpDetailList {
  944. if mapUser[v.Mobile] == nil || v.Mobile == "" {
  945. continue
  946. }
  947. var haseName bool
  948. wxUser := mapUser[v.Mobile]
  949. for _, vI := range industrialList {
  950. if vI.ActivityId != v.ActivityId {
  951. continue
  952. }
  953. haseName = true
  954. item := new(models.WxUserRaiLabelLog)
  955. item.UserId = wxUser.UserId
  956. item.RealName = wxUser.RealName
  957. item.Mobile = wxUser.Mobile
  958. item.Email = wxUser.Email
  959. item.CompanyId = wxUser.CompanyId
  960. item.CompanyName = wxUser.CompanyName
  961. item.Label = vI.IndustryName
  962. item.SourceType = sourceTypemap[v.ActivityId]
  963. item.SourceId = v.ActivityId
  964. item.CreateTime = v.CreateTime
  965. item.ModifyTime = time.Now()
  966. item.TableName = ""
  967. //item.RegisterPlatform = v.RegisterPlatform
  968. items = append(items, item)
  969. }
  970. for _, vs := range subjectList {
  971. if vs.ActivityId != v.ActivityId {
  972. continue
  973. }
  974. haseName = true
  975. item := new(models.WxUserRaiLabelLog)
  976. item.UserId = wxUser.UserId
  977. item.RealName = wxUser.RealName
  978. item.Mobile = wxUser.Mobile
  979. item.Email = wxUser.Email
  980. item.CompanyId = wxUser.CompanyId
  981. item.CompanyName = wxUser.CompanyName
  982. item.Label = vs.SubjectName
  983. item.SourceType = sourceTypemap[v.ActivityId]
  984. item.SourceId = v.ActivityId
  985. item.CreateTime = v.CreateTime
  986. item.ModifyTime = time.Now()
  987. //item.RegisterPlatform = v.RegisterPlatform
  988. items = append(items, item)
  989. }
  990. //如果两个标签都没有,就添加临时标签
  991. if !haseName {
  992. item := new(models.WxUserRaiLabelLog)
  993. item.UserId = wxUser.UserId
  994. item.RealName = wxUser.RealName
  995. item.Mobile = wxUser.Mobile
  996. item.Email = wxUser.Email
  997. item.CompanyId = wxUser.CompanyId
  998. item.CompanyName = wxUser.CompanyName
  999. item.Label = mapLabel[v.ActivityId]
  1000. item.SourceType = sourceTypemap[v.ActivityId]
  1001. item.SourceId = v.ActivityId
  1002. item.CreateTime = v.CreateTime
  1003. item.ModifyTime = time.Now()
  1004. //item.RegisterPlatform = v.RegisterPlatform
  1005. item.TableName = ""
  1006. items = append(items, item)
  1007. }
  1008. }
  1009. //fmt.Println("initCrm16_5Activity", len(items))
  1010. //return
  1011. var itemsAdd []*models.WxUserRaiLabelLog
  1012. if len(items) > 0 {
  1013. for _, v := range items {
  1014. itemsAdd = append(itemsAdd, v)
  1015. if len(itemsAdd)%2000 == 0 {
  1016. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1017. if err != nil {
  1018. return
  1019. }
  1020. itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
  1021. }
  1022. }
  1023. }
  1024. if len(itemsAdd) > 0 {
  1025. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1026. if err != nil {
  1027. return
  1028. }
  1029. }
  1030. fmt.Println("endAddWxUserRaiLabelLogMultiInit")
  1031. }
  1032. func initCrm16_5ActivityVivo() {
  1033. var condition string
  1034. var pars []interface{}
  1035. condition += ` AND create_time > '2024-09-01' `
  1036. pars = append(pars)
  1037. //获取提交到会的人员信息
  1038. ActivityVoiceList, err := models.GetActivityVoiceHistoryByMobileListCRM_16_5Init(condition)
  1039. if err != nil {
  1040. fmt.Println(err)
  1041. return
  1042. }
  1043. ActivityVideoList, err := models.GetActivityVideoHistoryByMobileListCRM_16_5Init(condition)
  1044. if err != nil {
  1045. fmt.Println(err)
  1046. return
  1047. }
  1048. var mobiles []string
  1049. mapMobile := make(map[string]bool)
  1050. for _, v := range ActivityVoiceList {
  1051. if mapMobile[v.Mobile] || v.Mobile == "" {
  1052. continue
  1053. }
  1054. mapMobile[v.Mobile] = true
  1055. mobiles = append(mobiles, v.Mobile)
  1056. }
  1057. for _, v := range ActivityVideoList {
  1058. if mapMobile[v.Mobile] || v.Mobile == "" {
  1059. continue
  1060. }
  1061. mapMobile[v.Mobile] = true
  1062. mobiles = append(mobiles, v.Mobile)
  1063. }
  1064. var activityIds []int
  1065. mapactivityId := make(map[int]bool)
  1066. for _, v := range ActivityVoiceList {
  1067. if mapactivityId[v.ActivityId] {
  1068. continue
  1069. }
  1070. mapactivityId[v.ActivityId] = true
  1071. activityIds = append(activityIds, v.ActivityId)
  1072. }
  1073. for _, v := range ActivityVideoList {
  1074. if mapactivityId[v.ActivityId] {
  1075. continue
  1076. }
  1077. mapactivityId[v.ActivityId] = true
  1078. activityIds = append(activityIds, v.ActivityId)
  1079. }
  1080. listUser, err := models.GetWxUserListByMobileArr(mobiles)
  1081. if err != nil {
  1082. fmt.Println(err)
  1083. return
  1084. }
  1085. mapUser := make(map[string]*models.WxUserItem)
  1086. for _, v := range listUser {
  1087. mapUser[v.Mobile] = v
  1088. }
  1089. activityDetailList, e := models.GetAddActivityDetailByActivityIdinitCrm16_5(activityIds)
  1090. if e != nil {
  1091. fmt.Println(e)
  1092. return
  1093. }
  1094. //sourceTypemap := make(map[int]int)
  1095. mapLabel := make(map[int]string)
  1096. for _, v := range activityDetailList {
  1097. //if v.ActivityType == 1 {
  1098. // sourceTypemap[v.ActivityId] = 4
  1099. //} else {
  1100. // sourceTypemap[v.ActivityId] = 2
  1101. //}
  1102. mapLabel[v.ActivityId] = v.Label
  1103. }
  1104. //正常的有产业报告
  1105. //建立首页资源表,与产业的关系
  1106. industrialList, e := models.GetIndustrialActivityGroupManagementListByArticleIds(activityIds)
  1107. if e != nil && e.Error() != utils.ErrNoRow() {
  1108. fmt.Println(e)
  1109. return
  1110. }
  1111. //建立首页资源表,与标的 的关系
  1112. subjectList, e := models.GetSubjectActivityGroupManagementListByActivityIds(activityIds)
  1113. if e != nil && e.Error() != utils.ErrNoRow() {
  1114. fmt.Println(e)
  1115. return
  1116. }
  1117. var items []*models.WxUserRaiLabelLog
  1118. for _, v := range ActivityVoiceList {
  1119. if mapUser[v.Mobile] == nil || v.Mobile == "" {
  1120. continue
  1121. }
  1122. var haseName bool
  1123. wxUser := mapUser[v.Mobile]
  1124. for _, vI := range industrialList {
  1125. if vI.ActivityId != v.ActivityId {
  1126. continue
  1127. }
  1128. haseName = true
  1129. item := new(models.WxUserRaiLabelLog)
  1130. item.UserId = wxUser.UserId
  1131. item.RealName = wxUser.RealName
  1132. item.Mobile = wxUser.Mobile
  1133. item.Email = wxUser.Email
  1134. item.CompanyId = wxUser.CompanyId
  1135. item.CompanyName = wxUser.CompanyName
  1136. item.Label = vI.IndustryName
  1137. item.SourceType = 9
  1138. item.SourceId = v.ActivityId
  1139. item.CreateTime = v.CreateTime
  1140. item.ModifyTime = time.Now()
  1141. item.TableName = ""
  1142. //item.RegisterPlatform = v.RegisterPlatform
  1143. items = append(items, item)
  1144. }
  1145. for _, vs := range subjectList {
  1146. if vs.ActivityId != v.ActivityId {
  1147. continue
  1148. }
  1149. haseName = true
  1150. item := new(models.WxUserRaiLabelLog)
  1151. item.UserId = wxUser.UserId
  1152. item.RealName = wxUser.RealName
  1153. item.Mobile = wxUser.Mobile
  1154. item.Email = wxUser.Email
  1155. item.CompanyId = wxUser.CompanyId
  1156. item.CompanyName = wxUser.CompanyName
  1157. item.Label = vs.SubjectName
  1158. item.SourceType = 9
  1159. item.SourceId = v.ActivityId
  1160. item.CreateTime = v.CreateTime
  1161. item.ModifyTime = time.Now()
  1162. //item.RegisterPlatform = v.RegisterPlatform
  1163. items = append(items, item)
  1164. }
  1165. //如果两个标签都没有,就添加临时标签
  1166. if !haseName {
  1167. item := new(models.WxUserRaiLabelLog)
  1168. item.UserId = wxUser.UserId
  1169. item.RealName = wxUser.RealName
  1170. item.Mobile = wxUser.Mobile
  1171. item.Email = wxUser.Email
  1172. item.CompanyId = wxUser.CompanyId
  1173. item.CompanyName = wxUser.CompanyName
  1174. item.Label = mapLabel[v.ActivityId]
  1175. item.SourceType = 9
  1176. item.SourceId = v.ActivityId
  1177. item.CreateTime = v.CreateTime
  1178. item.ModifyTime = time.Now()
  1179. //item.RegisterPlatform = v.RegisterPlatform
  1180. item.TableName = ""
  1181. items = append(items, item)
  1182. }
  1183. }
  1184. for _, v := range ActivityVideoList {
  1185. if mapUser[v.Mobile] == nil || v.Mobile == "" {
  1186. continue
  1187. }
  1188. var haseName bool
  1189. wxUser := mapUser[v.Mobile]
  1190. for _, vI := range industrialList {
  1191. if vI.ActivityId != v.ActivityId {
  1192. continue
  1193. }
  1194. haseName = true
  1195. item := new(models.WxUserRaiLabelLog)
  1196. item.UserId = wxUser.UserId
  1197. item.RealName = wxUser.RealName
  1198. item.Mobile = wxUser.Mobile
  1199. item.Email = wxUser.Email
  1200. item.CompanyId = wxUser.CompanyId
  1201. item.CompanyName = wxUser.CompanyName
  1202. item.Label = vI.IndustryName
  1203. item.SourceType = 9
  1204. item.SourceId = v.ActivityId
  1205. item.CreateTime = v.CreateTime
  1206. item.ModifyTime = time.Now()
  1207. item.TableName = ""
  1208. //item.RegisterPlatform = v.RegisterPlatform
  1209. items = append(items, item)
  1210. }
  1211. for _, vs := range subjectList {
  1212. if vs.ActivityId != v.ActivityId {
  1213. continue
  1214. }
  1215. haseName = true
  1216. item := new(models.WxUserRaiLabelLog)
  1217. item.UserId = wxUser.UserId
  1218. item.RealName = wxUser.RealName
  1219. item.Mobile = wxUser.Mobile
  1220. item.Email = wxUser.Email
  1221. item.CompanyId = wxUser.CompanyId
  1222. item.CompanyName = wxUser.CompanyName
  1223. item.Label = vs.SubjectName
  1224. item.SourceType = 9
  1225. item.SourceId = v.ActivityId
  1226. item.CreateTime = v.CreateTime
  1227. item.ModifyTime = time.Now()
  1228. //item.RegisterPlatform = v.RegisterPlatform
  1229. items = append(items, item)
  1230. }
  1231. //如果两个标签都没有,就添加临时标签
  1232. if !haseName {
  1233. item := new(models.WxUserRaiLabelLog)
  1234. item.UserId = wxUser.UserId
  1235. item.RealName = wxUser.RealName
  1236. item.Mobile = wxUser.Mobile
  1237. item.Email = wxUser.Email
  1238. item.CompanyId = wxUser.CompanyId
  1239. item.CompanyName = wxUser.CompanyName
  1240. item.Label = mapLabel[v.ActivityId]
  1241. item.SourceType = 9
  1242. item.SourceId = v.ActivityId
  1243. item.CreateTime = v.CreateTime
  1244. item.ModifyTime = time.Now()
  1245. //item.RegisterPlatform = v.RegisterPlatform
  1246. item.TableName = ""
  1247. items = append(items, item)
  1248. }
  1249. }
  1250. fmt.Println("initCrm16_5Activity", len(items))
  1251. //return
  1252. var itemsAdd []*models.WxUserRaiLabelLog
  1253. if len(items) > 0 {
  1254. for _, v := range items {
  1255. itemsAdd = append(itemsAdd, v)
  1256. if len(itemsAdd)%2000 == 0 {
  1257. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1258. if err != nil {
  1259. return
  1260. }
  1261. itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
  1262. }
  1263. }
  1264. }
  1265. if len(itemsAdd) > 0 {
  1266. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1267. if err != nil {
  1268. return
  1269. }
  1270. }
  1271. fmt.Println("endAddWxUserRaiLabelLogMultiInit")
  1272. }
  1273. func initCrm16_5Article() {
  1274. var condition string
  1275. var pars []interface{}
  1276. condition += ` `
  1277. pars = append(pars)
  1278. listArticleIds, err := models.GetCygxArticleHistoryRecordAllListArticleIdCrm16_5()
  1279. if err != nil {
  1280. fmt.Println(err)
  1281. return
  1282. }
  1283. fmt.Println("listArticleIds", len(listArticleIds))
  1284. listHave, err := models.GetWxUserRaiArticleLabelCrm16_5()
  1285. if err != nil {
  1286. fmt.Println(err)
  1287. return
  1288. }
  1289. mapArticleId := make(map[int]bool)
  1290. for _, v := range listHave {
  1291. mapArticleId[v.ArticleId] = true
  1292. }
  1293. for k, v := range listArticleIds {
  1294. fmt.Println(k)
  1295. labelArr, sourceType := GetArticlelabelArrByArticleId(v.ArticleId)
  1296. if len(labelArr) == 0 {
  1297. continue
  1298. }
  1299. var items []*models.WxUserRaiArticleLabel
  1300. for _, v2 := range labelArr {
  1301. item := new(models.WxUserRaiArticleLabel)
  1302. item.ArticleId = v.ArticleId
  1303. item.Label = v2
  1304. item.SourceType = sourceType
  1305. item.CreateTime = time.Now()
  1306. items = append(items, item)
  1307. }
  1308. err = models.AddWxUserRaiArticleLabelMultiInit(items)
  1309. time.Sleep(time.Millisecond * 100)
  1310. fmt.Println(err)
  1311. }
  1312. }
  1313. func initCrm16_5Article2() {
  1314. var condition string
  1315. var pars []interface{}
  1316. condition += ` `
  1317. pars = append(pars)
  1318. //获取提交到会的人员信息
  1319. listArticleIds, err := models.GetCygxArticleHistoryRecordAllListUserIdCrm16_5()
  1320. if err != nil {
  1321. fmt.Println(err)
  1322. return
  1323. }
  1324. fmt.Println("listArticleIds", len(listArticleIds))
  1325. mapUserId := make(map[string]bool)
  1326. var mobiles []string
  1327. for _, v := range listArticleIds {
  1328. if mapUserId[v.Mobile] {
  1329. continue
  1330. }
  1331. mobiles = append(mobiles, v.Mobile)
  1332. mapUserId[v.Mobile] = true
  1333. }
  1334. listUser, err := models.GetWxUserListByMobileArr(mobiles)
  1335. if err != nil {
  1336. fmt.Println(err)
  1337. return
  1338. }
  1339. mapUser := make(map[string]*models.WxUserItem)
  1340. for _, v := range listUser {
  1341. mapUser[v.Mobile] = v
  1342. }
  1343. listArticleLabel, err := models.GetWxUserRaiArticleLabelAllCrm16_5()
  1344. if err != nil {
  1345. fmt.Println(err)
  1346. return
  1347. }
  1348. mapArticleLabel := make(map[int][]string)
  1349. mapArticleType := make(map[int]int)
  1350. for _, v := range listArticleLabel {
  1351. mapArticleLabel[v.ArticleId] = append(mapArticleLabel[v.ArticleId], v.Label)
  1352. mapArticleType[v.ArticleId] = v.SourceType
  1353. }
  1354. var items []*models.WxUserRaiLabelLog
  1355. for _, v := range listArticleIds {
  1356. if mapUser[v.Mobile] == nil || v.Mobile == "" {
  1357. continue
  1358. }
  1359. if len(mapArticleLabel[v.ArticleId]) == 0 {
  1360. continue
  1361. }
  1362. wxUser := mapUser[v.Mobile]
  1363. for _, vI := range mapArticleLabel[v.ArticleId] {
  1364. item := new(models.WxUserRaiLabelLog)
  1365. item.UserId = wxUser.UserId
  1366. item.RealName = wxUser.RealName
  1367. item.Mobile = wxUser.Mobile
  1368. item.Email = wxUser.Email
  1369. item.CompanyId = wxUser.CompanyId
  1370. item.CompanyName = wxUser.CompanyName
  1371. item.Label = vI
  1372. item.SourceType = mapArticleType[v.ArticleId]
  1373. item.SourceId = v.ArticleId
  1374. item.CreateTime = utils.StrTimeToTime(v.CreateTime)
  1375. item.ModifyTime = time.Now()
  1376. item.TableName = "cygx_article"
  1377. //item.RegisterPlatform = v.RegisterPlatform
  1378. items = append(items, item)
  1379. }
  1380. }
  1381. fmt.Println("items", len(items))
  1382. var itemsAdd []*models.WxUserRaiLabelLog
  1383. if len(items) > 0 {
  1384. for _, v := range items {
  1385. itemsAdd = append(itemsAdd, v)
  1386. if len(itemsAdd)%2000 == 0 {
  1387. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1388. if err != nil {
  1389. fmt.Println(err)
  1390. return
  1391. }
  1392. itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
  1393. }
  1394. }
  1395. }
  1396. if len(itemsAdd) > 0 {
  1397. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1398. if err != nil {
  1399. fmt.Println(err)
  1400. return
  1401. }
  1402. }
  1403. fmt.Println("endAddWxUserRaiLabelLogMultiInit")
  1404. }
  1405. //func init() {
  1406. // //initCrm16_5keyWord()
  1407. // //initCrm16_5Activity()
  1408. // ////initCrm16_5Article()
  1409. // //initCrm16_5Article2()
  1410. // //initCrm16_5ReportHistory()
  1411. // //initCrm16_5ReportHistory_2()
  1412. // //initCrm16_5Roadshow()
  1413. // //initCrm16_5ActivityVivo()
  1414. // fmt.Println("end RO")
  1415. //
  1416. // initCrm16_5wx_user_rai_label()
  1417. //
  1418. // fmt.Println("end RO2")
  1419. //}
  1420. // 记录用户在重点公司单独点了某一个标签
  1421. func initCrm16_5ReportHistory_0() {
  1422. var err error
  1423. defer func() {
  1424. if err != nil {
  1425. go utils.SendAlarmMsg("SendCygxReportSelectionLogApplyTemplateMsg Err"+err.Error(), 2)
  1426. }
  1427. }()
  1428. var condition string
  1429. var pars []interface{}
  1430. listhistory, err := models.GetCygxReportSelectionSubjectHistory()
  1431. if err != nil {
  1432. fmt.Println(err)
  1433. return
  1434. }
  1435. for kH, vH := range listhistory {
  1436. fmt.Println(kH)
  1437. pars = make([]interface{}, 0)
  1438. condition = ` AND article_id = ? AND industrial_subject_id = ? AND industrial_management_id = ? AND third_id = ? `
  1439. pars = append(pars, vH.ArticleId, vH.IndustrialSubjectId, vH.IndustrialManagementId, vH.ThirdId)
  1440. listLog, e := models.GetCygxReportSelectionLog(condition, pars, 0, 9999)
  1441. if e != nil {
  1442. err = errors.New("GetCygxReportSelectionLog, Err: " + e.Error())
  1443. fmt.Println(err)
  1444. return
  1445. }
  1446. var labelName string
  1447. for _, v2 := range listLog {
  1448. if v2.ThirdId > 0 {
  1449. labelName = v2.ThirdName
  1450. } else if v2.IndustrialSubjectId == 0 && v2.IndustrialManagementId != "" {
  1451. labelName = v2.IndustrialManagementNames
  1452. } else {
  1453. labelName = v2.SubjectName
  1454. }
  1455. }
  1456. err = models.UpdateCygxReportSelectionSubjectHistoryName(labelName, vH.Id)
  1457. if err != nil {
  1458. fmt.Println(err)
  1459. return
  1460. }
  1461. }
  1462. fmt.Println("end")
  1463. return
  1464. }
  1465. func initCrm16_5ReportHistory() {
  1466. listReportHistory, err := models.GetWxUserRaiCygxReportHistoryRecordCrm16_5()
  1467. if err != nil {
  1468. fmt.Println(err)
  1469. return
  1470. }
  1471. var mobiles []string
  1472. mapMobile := make(map[string]bool)
  1473. for _, v := range listReportHistory {
  1474. if mapMobile[v.Mobile] || v.Mobile == "" {
  1475. continue
  1476. }
  1477. mapMobile[v.Mobile] = true
  1478. mobiles = append(mobiles, v.Mobile)
  1479. }
  1480. listUser, err := models.GetWxUserListByMobileArr(mobiles)
  1481. if err != nil {
  1482. fmt.Println(err)
  1483. return
  1484. }
  1485. mapUser := make(map[string]*models.WxUserItem)
  1486. for _, v := range listUser {
  1487. mapUser[v.Mobile] = v
  1488. }
  1489. var items []*models.WxUserRaiLabelLog
  1490. for _, v := range listReportHistory {
  1491. if mapUser[v.Mobile] == nil || v.Mobile == "" {
  1492. continue
  1493. }
  1494. wxUser := mapUser[v.Mobile]
  1495. item := new(models.WxUserRaiLabelLog)
  1496. item.UserId = wxUser.UserId
  1497. item.RealName = wxUser.RealName
  1498. item.Mobile = wxUser.Mobile
  1499. item.Email = wxUser.Email
  1500. item.CompanyId = wxUser.CompanyId
  1501. item.CompanyName = wxUser.CompanyName
  1502. if v.ReportType == "bgjx" {
  1503. item.Label = "重点推荐"
  1504. item.TableName = "cygx_report_selection"
  1505. } else {
  1506. item.Label = "本周研究汇总"
  1507. item.TableName = "cygx_research_summary"
  1508. }
  1509. item.SourceId = v.ArticleId
  1510. item.SourceType = 8
  1511. item.CreateTime = v.CreateTime
  1512. item.ModifyTime = time.Now()
  1513. item.RegisterPlatform = v.RegisterPlatform
  1514. items = append(items, item)
  1515. }
  1516. fmt.Println("items", len(items))
  1517. var itemsAdd []*models.WxUserRaiLabelLog
  1518. if len(items) > 0 {
  1519. for _, v := range items {
  1520. itemsAdd = append(itemsAdd, v)
  1521. if len(items)%2000 == 0 {
  1522. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1523. if err != nil {
  1524. return
  1525. }
  1526. itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
  1527. }
  1528. }
  1529. }
  1530. if len(itemsAdd) > 0 {
  1531. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1532. if err != nil {
  1533. return
  1534. }
  1535. }
  1536. fmt.Println("endAddWxUserRaiLabelLogMultiInit")
  1537. }
  1538. func initCrm16_5ReportHistory_2() {
  1539. listReportHistory, err := models.GetCygxReportSelectionSubjectHistory()
  1540. if err != nil {
  1541. fmt.Println(err)
  1542. return
  1543. }
  1544. var mobiles []string
  1545. mapMobile := make(map[string]bool)
  1546. for _, v := range listReportHistory {
  1547. if mapMobile[v.Mobile] || v.Mobile == "" {
  1548. continue
  1549. }
  1550. mapMobile[v.Mobile] = true
  1551. mobiles = append(mobiles, v.Mobile)
  1552. }
  1553. listUser, err := models.GetWxUserListByMobileArr(mobiles)
  1554. if err != nil {
  1555. fmt.Println(err)
  1556. return
  1557. }
  1558. mapUser := make(map[string]*models.WxUserItem)
  1559. for _, v := range listUser {
  1560. mapUser[v.Mobile] = v
  1561. }
  1562. var items []*models.WxUserRaiLabelLog
  1563. for _, v := range listReportHistory {
  1564. if mapUser[v.Mobile] == nil || v.Mobile == "" || v.LableName == "" {
  1565. continue
  1566. }
  1567. wxUser := mapUser[v.Mobile]
  1568. item := new(models.WxUserRaiLabelLog)
  1569. item.UserId = wxUser.UserId
  1570. item.RealName = wxUser.RealName
  1571. item.Mobile = wxUser.Mobile
  1572. item.Email = wxUser.Email
  1573. item.CompanyId = wxUser.CompanyId
  1574. item.CompanyName = wxUser.CompanyName
  1575. item.Label = v.LableName
  1576. item.SourceType = 8
  1577. item.CreateTime = v.CreateTime
  1578. item.ModifyTime = time.Now()
  1579. item.RegisterPlatform = v.RegisterPlatform
  1580. items = append(items, item)
  1581. }
  1582. fmt.Println("items", len(items))
  1583. var itemsAdd []*models.WxUserRaiLabelLog
  1584. if len(items) > 0 {
  1585. for _, v := range items {
  1586. itemsAdd = append(itemsAdd, v)
  1587. if len(items)%2000 == 0 {
  1588. err = models.AddWxUserRaiLabelLogMultiInit(items)
  1589. if err != nil {
  1590. return
  1591. }
  1592. itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
  1593. }
  1594. }
  1595. }
  1596. if len(itemsAdd) > 0 {
  1597. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1598. if err != nil {
  1599. return
  1600. }
  1601. }
  1602. fmt.Println("endAddWxUserRaiLabelLogMultiInit")
  1603. }
  1604. func initCrm16_5Roadshow() {
  1605. var condition string
  1606. var pars []interface{}
  1607. condition = " "
  1608. calendarMeetingUserList, e := roadshow.GetRsCalendarMeetingUserList(condition+" ORDER BY rs.start_date ASC ", pars)
  1609. if e != nil {
  1610. fmt.Println(e)
  1611. return
  1612. }
  1613. var rsCalendarIds []int
  1614. for _, v := range calendarMeetingUserList {
  1615. rsCalendarIds = append(rsCalendarIds, v.RsCalendarId)
  1616. }
  1617. var mobiles []string
  1618. mapMobile := make(map[string]bool)
  1619. for _, v := range calendarMeetingUserList {
  1620. if mapMobile[v.Mobile] || v.Mobile == "" {
  1621. continue
  1622. }
  1623. mapMobile[v.Mobile] = true
  1624. mobiles = append(mobiles, v.Mobile)
  1625. }
  1626. RsCalendarListInit, e := roadshow.GetRsCalendarListInit(rsCalendarIds)
  1627. if e != nil {
  1628. fmt.Println(e)
  1629. return
  1630. }
  1631. mapRoadshowType := make(map[int]int)
  1632. for _, v := range RsCalendarListInit {
  1633. if v.RoadshowType == "线下" {
  1634. mapRoadshowType[v.RsCalendarId] = 3
  1635. } else {
  1636. mapRoadshowType[v.RsCalendarId] = 5
  1637. }
  1638. }
  1639. listUser, err := models.GetWxUserListByMobileArr(mobiles)
  1640. if err != nil {
  1641. fmt.Println(err)
  1642. return
  1643. }
  1644. mapUser := make(map[string]*models.WxUserItem)
  1645. for _, v := range listUser {
  1646. mapUser[v.Mobile] = v
  1647. }
  1648. var items []*models.WxUserRaiLabelLog
  1649. for _, v := range calendarMeetingUserList {
  1650. if mapUser[v.Mobile] == nil || v.Mobile == "" {
  1651. continue
  1652. }
  1653. wxUser := mapUser[v.Mobile]
  1654. var sourceType int
  1655. sourceType = mapRoadshowType[v.RsCalendarId]
  1656. totalGroup, e := roadshow.GetRsCalendarMeetingLabelGroupByRsCalendarId(v.RsCalendarId)
  1657. if e != nil {
  1658. err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
  1659. return
  1660. }
  1661. //var lebelDetail []*cygx.RaiServeTagResp
  1662. var label string
  1663. var labelArr []string
  1664. if totalGroup > 0 {
  1665. listGroup, e := roadshow.GetRsCalendarMeetingLabelGroupListByRsCalendarId(v.RsCalendarId)
  1666. if e != nil {
  1667. err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
  1668. return
  1669. }
  1670. var industrialManagementIds []int
  1671. var industrialSubjectIds []int
  1672. mapindustrialManagementName := make(map[int]string)
  1673. mapindustrialSubjectName := make(map[int]string)
  1674. mapCelueName := make(map[int]string)
  1675. for _, vG := range listGroup {
  1676. switch vG.TagType {
  1677. case 1:
  1678. industrialManagementIds = append(industrialManagementIds, vG.TagId)
  1679. case 2:
  1680. industrialSubjectIds = append(industrialSubjectIds, vG.TagId)
  1681. case 3:
  1682. mapCelueName[vG.TagId] = "策略"
  1683. }
  1684. }
  1685. if len(industrialManagementIds) > 0 {
  1686. IndustryList, e := models.GetIndustryListByConditionByIds(industrialManagementIds)
  1687. if e != nil {
  1688. err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
  1689. return
  1690. }
  1691. for _, vI := range IndustryList {
  1692. mapindustrialManagementName[vI.IndustrialManagementId] = vI.IndustryName
  1693. }
  1694. }
  1695. if len(industrialSubjectIds) > 0 {
  1696. SubjectList, e := models.GetIndustrialSubjectDetailByIds(industrialSubjectIds)
  1697. if e != nil {
  1698. err = errors.New("GetIndustrialSubjectDetailByIds" + e.Error())
  1699. return
  1700. }
  1701. for _, vS := range SubjectList {
  1702. mapindustrialSubjectName[vS.IndustrialSubjectId] = vS.SubjectName
  1703. }
  1704. }
  1705. for _, vG := range listGroup {
  1706. switch vG.TagType {
  1707. case 1:
  1708. label = mapindustrialManagementName[vG.TagId]
  1709. case 2:
  1710. label = mapindustrialSubjectName[vG.TagId]
  1711. case 3:
  1712. label = mapCelueName[vG.TagId]
  1713. }
  1714. item := new(models.WxUserRaiLabelLog)
  1715. item.UserId = wxUser.UserId
  1716. item.RealName = wxUser.RealName
  1717. item.Mobile = wxUser.Mobile
  1718. item.Email = wxUser.Email
  1719. item.CompanyId = wxUser.CompanyId
  1720. item.CompanyName = wxUser.CompanyName
  1721. item.Label = label
  1722. item.SourceType = sourceType
  1723. item.SourceId = v.RsCalendarId
  1724. item.CreateTime = v.CreateTime
  1725. item.ModifyTime = time.Now()
  1726. //item.RegisterPlatform = log.RegisterPlatform
  1727. item.TableName = ""
  1728. items = append(items, item)
  1729. labelArr = append(labelArr, label)
  1730. }
  1731. }
  1732. }
  1733. fmt.Println("items", len(items))
  1734. var itemsAdd []*models.WxUserRaiLabelLog
  1735. if len(items) > 0 {
  1736. for _, v := range items {
  1737. itemsAdd = append(itemsAdd, v)
  1738. if len(items)%2000 == 0 {
  1739. err = models.AddWxUserRaiLabelLogMultiInit(items)
  1740. if err != nil {
  1741. return
  1742. }
  1743. itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
  1744. }
  1745. }
  1746. }
  1747. if len(itemsAdd) > 0 {
  1748. err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
  1749. if err != nil {
  1750. return
  1751. }
  1752. }
  1753. fmt.Println("endAddWxUserRaiLabelLogMultiInit")
  1754. }
  1755. func initCrm16_5wx_user_rai_label() {
  1756. listAll, err := models.GetWxUserRaiLabelLogAll()
  1757. if err != nil {
  1758. fmt.Println(err)
  1759. return
  1760. }
  1761. mapMobileLabel := make(map[string]bool)
  1762. var items []*models.WxUserRaiLabel
  1763. for _, v := range listAll {
  1764. if mapMobileLabel[fmt.Sprint(v.Mobile, "__", v.Label)] {
  1765. continue
  1766. }
  1767. item := new(models.WxUserRaiLabel)
  1768. item.UserId = v.UserId
  1769. item.RealName = v.RealName
  1770. item.Mobile = v.Mobile
  1771. item.Email = v.Email
  1772. item.CompanyId = v.CompanyId
  1773. item.CompanyName = v.CompanyName
  1774. item.Label = v.Label
  1775. item.SourceId = v.SourceId
  1776. item.SourceType = v.SourceType
  1777. item.CreateTime = v.CreateTime
  1778. item.ModifyTime = v.ModifyTime
  1779. item.RegisterPlatform = v.RegisterPlatform
  1780. item.TableName = v.TableName
  1781. items = append(items, item)
  1782. mapMobileLabel[fmt.Sprint(v.Mobile, "__", v.Label)] = true
  1783. }
  1784. var itemsAdd []*models.WxUserRaiLabel
  1785. if len(items) > 0 {
  1786. for _, v := range items {
  1787. itemsAdd = append(itemsAdd, v)
  1788. if len(itemsAdd)%2000 == 0 {
  1789. err = models.AddWxUserRaiLabelMultiInit(itemsAdd)
  1790. if err != nil {
  1791. return
  1792. }
  1793. itemsAdd = make([]*models.WxUserRaiLabel, 0)
  1794. }
  1795. }
  1796. }
  1797. if len(itemsAdd) > 0 {
  1798. err = models.AddWxUserRaiLabelMultiInit(itemsAdd)
  1799. if err != nil {
  1800. return
  1801. }
  1802. }
  1803. fmt.Println("end initCrm16_5wx_user_rai_label")
  1804. }