1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141 |
- package services
- import (
- "encoding/json"
- "errors"
- "fmt"
- "hongze/hongze_cygx/models"
- "hongze/hongze_cygx/models/roadshow"
- "hongze/hongze_cygx/utils"
- "strconv"
- "time"
- )
- // 添加用户搜索标签到Redis
- func KeyWordsWxUserRaiLabelRedisAdd(sourceId, uid int, label string) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
- go utils.SendAlarmMsg("用户关注产业更新相关标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
- }
- }()
- log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 1, Label: label, CreateTime: time.Now(), RegisterPlatform: utils.REGISTER_PLATFORM}
- if utils.Re == nil {
- err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
- if err != nil {
- fmt.Println("WxUserRaiLabelRedis LPush Err:" + err.Error())
- }
- }
- return
- }
- // 添加用户阅读文章标签到Redis
- func ArticleWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
- go utils.SendAlarmMsg("用户关注产业更新相关标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
- }
- }()
- log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 1, TableName: utils.CYGX_OBJ_ARTICLE, CreateTime: createTime, RegisterPlatform: utils.REGISTER_PLATFORM}
- if utils.Re == nil {
- err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
- if err != nil {
- fmt.Println("WxUserRaiLabelRedis LPush Err:" + err.Error())
- }
- }
- return
- }
- // 添加用户阅读本周研究汇总,与重点公司标签到Redis
- func ReportSelectionWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time, tableName, label string) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
- go utils.SendAlarmMsg("用户关注产业更新相关标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
- }
- }()
- log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 1, TableName: tableName, Label: label, CreateTime: createTime, RegisterPlatform: utils.REGISTER_PLATFORM}
- if utils.Re == nil {
- err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
- if err != nil {
- fmt.Println("ReportSelectionWxUserRaiLabelRedisAdd LPush Err:" + err.Error())
- }
- }
- return
- }
- // 添加用户参加活动标签到Redis
- func ActivityWxUserRaiLabelRedisAdd(sourceId, uid int, createTime time.Time) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- msg := fmt.Sprint("sourceId:", sourceId, "userId:", uid)
- go utils.SendAlarmMsg("添加用户参加活动标签,写入Redis队列消息失败:"+err.Error()+msg, 2)
- }
- }()
- log := &models.WxUserRaiLabelRedis{UserId: uid, SourceId: sourceId, SourceType: 2, CreateTime: createTime, RegisterPlatform: utils.REGISTER_PLATFORM}
- if utils.Re == nil {
- err := utils.Rc.LPush(utils.WX_USER_RAI_LABEL_KEY, log)
- if err != nil {
- fmt.Println("ActivityWxUserRaiLabelRedisAdd LPush Err:" + err.Error())
- }
- }
- return
- }
- func UpdateWxUserRaiLabelRedis() (err error) {
- for {
- // SourceType int `description:"来源1:搜索关键字标签、2:产业/个股标签(线下活动)、3:产业/个股标签(线下路演)、4:产业/个股标签(线上活动)、5:产业/个股标签(线上路演)、6:销售输入标签、7:产业/个股标签(报告)、8:报告类型标签"`
- utils.Rc.Brpop(utils.WX_USER_RAI_LABEL_KEY, func(b []byte) {
- var log models.WxUserRaiLabelRedis
- if err := json.Unmarshal(b, &log); err != nil {
- fmt.Println("json unmarshal wrong!")
- go utils.SendAlarmMsg("用户更新相关标签处理Redis队列消息失败:"+err.Error()+string(b), 2)
- }
- if log.TableName == "" {
- switch log.SourceType {
- case 1:
- go KeyWordsWxUserRaiLabelRedisAddReduce(log)
- fmt.Println("搜索关键词")
- break
- case 2, 4:
- go ActivityWxUserRaiLabelRedisAddReduce(log)
- fmt.Println("活动到会")
- break
- case 3, 5:
- go RoadshowWxUserRaiLabelRedisAddReduce(log)
- fmt.Println("活动到会")
- break
- default:
- fmt.Println(string(b))
- go utils.SendAlarmMsg("用户更新相关标签处理Redis队列消息失败:"+string(b), 2)
- }
- } else {
- switch log.TableName {
- case utils.CYGX_OBJ_ARTICLE:
- go ArticleWxUserRaiLabelRedisAddReduce(log)
- fmt.Println("阅读文章")
- case "cygx_research_summary":
- go ReportSelectionWxUserRaiLabelRedisAddReduce(log)
- fmt.Println("阅读本周研究汇总")
- case "cygx_report_selection":
- go ReportSelectionWxUserRaiLabelRedisAddReduce(log)
- fmt.Println("阅读报告精选(重点公司)")
- }
- }
- })
- }
- }
- // 1:搜索关键词
- func KeyWordsWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("用户文章阅读更新相关标签,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("articleId", log.SourceId, "userId", log.UserId), 2)
- }
- }()
- userId := log.UserId
- label := log.Label
- if userId == 0 {
- return
- }
- wxUser, e := models.GetWxUserItemByUserId(userId)
- if e != nil {
- err = errors.New("GetWxUserItemByUserId" + e.Error())
- return
- }
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = label
- item.SourceType = log.SourceType
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- err = models.AddWxUserRaiLabel(item)
- if e != nil {
- err = errors.New("AddWxUserRaiLabel" + e.Error())
- return
- }
- return
- }
- //func init() {
- // log := models.WxUserRaiLabelRedis{UserId: 53840, SourceId: 1753, SourceType: 3, TableName: "", Label: "", CreateTime: time.Now(), RegisterPlatform: utils.REGISTER_PLATFORM}
- // RoadshowWxUserRaiLabelRedisAddReduce(log)
- //}
- // 2:产业/个股标签(线下活动)、 4:产业/个股标签(线上活动)
- // 用户参加活动,相关标签
- func ActivityWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("用户参加活动,相关标签,处理Redis队列消息失败:ActivityWxUserRaiLabelRedisAddReduce"+err.Error()+fmt.Sprint("SourceId", log.SourceId, "userId", log.UserId), 2)
- }
- }()
- userId := log.UserId
- sourceId := log.SourceId
- wxUser, e := models.GetWxUserItemByUserId(userId)
- if e != nil {
- err = errors.New("GetWxUserItemByUserId" + e.Error())
- return
- }
- activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
- if e != nil {
- err = errors.New("GetArticleDetailTestById" + e.Error())
- return
- }
- var sourceType int
- if activityDetail.ActivityType == 1 {
- sourceType = 4
- } else {
- sourceType = 2
- }
- //正常的有产业报告
- var labelArr []string
- //建立首页资源表,与产业的关系
- industrialList, e := models.GetIndustrialActivityGroupManagementListByArticleId(sourceId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetIndustrialArticleGroupManagementListByArticleId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
- return
- }
- var items []*models.WxUserRaiLabel
- for _, v := range industrialList {
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = v.IndustryName
- item.SourceType = sourceType
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = ""
- items = append(items, item)
- labelArr = append(labelArr, v.IndustryName)
- }
- //建立首页资源表,与标的 的关系
- subjectList, e := models.GetSubjectActivityGroupManagementListByActivityId(sourceId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetSubjectArticleGroupManagementListByArtcileId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
- return
- }
- //fmt.Println("subjectList", subjectList)
- for _, v := range subjectList {
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = v.SubjectName
- item.SourceType = sourceType
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = ""
- items = append(items, item)
- labelArr = append(labelArr, v.SubjectName)
- }
- //如果两个标签都没有,就添加临时标签
- if len(labelArr) == 0 {
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = activityDetail.Label
- item.SourceType = sourceType
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = ""
- items = append(items, item)
- labelArr = append(labelArr, activityDetail.Label)
- }
- e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
- if e != nil {
- err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
- return
- }
- return
- }
- // 3:产业/个股标签(路演线下活动)、 5:产业/个股标签(路演线上活动)
- // 用户参加路演,相关标签
- func RoadshowWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("用户参加路演,相关标签,处理Redis队列消息失败:RoadshowWxUserRaiLabelRedisAddReduce"+err.Error()+fmt.Sprint("SourceId", log.SourceId, "userId", log.UserId), 2)
- }
- }()
- userId := log.UserId
- sourceId := log.SourceId
- wxUser, e := models.GetWxUserItemByUserId(userId)
- if e != nil {
- err = errors.New("GetWxUserItemByUserId" + e.Error())
- return
- }
- rsCalendar, e := roadshow.GetRsCalendarById(sourceId)
- if e != nil {
- err = errors.New("GetRsCalendarById" + e.Error())
- return
- }
- var sourceType int
- if rsCalendar.RoadshowType == "线下" {
- sourceType = 3
- } else {
- sourceType = 5
- }
- totalGroup, e := roadshow.GetRsCalendarMeetingLabelGroupByRsCalendarId(sourceId)
- if e != nil {
- err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
- return
- }
- //var lebelDetail []*cygx.RaiServeTagResp
- var label string
- var labelArr []string
- var items []*models.WxUserRaiLabel
- if totalGroup > 0 {
- listGroup, e := roadshow.GetRsCalendarMeetingLabelGroupListByRsCalendarId(sourceId)
- if e != nil {
- err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
- return
- }
- var industrialManagementIds []int
- var industrialSubjectIds []int
- mapindustrialManagementName := make(map[int]string)
- mapindustrialSubjectName := make(map[int]string)
- mapCelueName := make(map[int]string)
- for _, v := range listGroup {
- switch v.TagType {
- case 1:
- industrialManagementIds = append(industrialManagementIds, v.TagId)
- case 2:
- industrialSubjectIds = append(industrialSubjectIds, v.TagId)
- case 3:
- mapCelueName[v.TagId] = "策略"
- }
- }
- if len(industrialManagementIds) > 0 {
- IndustryList, e := models.GetIndustryListByConditionByIds(industrialManagementIds)
- if e != nil {
- err = errors.New("GetRsCalendarMeetingLabelGroupByRsCalendarId" + e.Error())
- return
- }
- for _, v := range IndustryList {
- mapindustrialManagementName[v.IndustrialManagementId] = v.IndustryName
- }
- }
- if len(industrialSubjectIds) > 0 {
- SubjectList, e := models.GetIndustrialSubjectDetailByIds(industrialSubjectIds)
- if e != nil {
- err = errors.New("GetIndustrialSubjectDetailByIds" + e.Error())
- return
- }
- for _, v := range SubjectList {
- mapindustrialSubjectName[v.IndustrialSubjectId] = v.SubjectName
- }
- }
- for _, v := range listGroup {
- switch v.TagType {
- case 1:
- label = mapindustrialManagementName[v.TagId]
- case 2:
- label = mapindustrialSubjectName[v.TagId]
- case 3:
- label = mapCelueName[v.TagId]
- }
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = label
- item.SourceType = sourceType
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = ""
- items = append(items, item)
- labelArr = append(labelArr, label)
- }
- }
- e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
- if e != nil {
- err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
- return
- }
- return
- }
- // 7:产业/个股标签(报告)、8:报告类型标签
- func ArticleWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("用户文章阅读更新相关标签,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("articleId", log.SourceId, "userId", log.UserId), 2)
- }
- }()
- userId := log.UserId
- sourceId := log.SourceId
- wxUser, e := models.GetWxUserItemByUserId(userId)
- if e != nil {
- err = errors.New("GetWxUserItemByUserId" + e.Error())
- return
- }
- articleDetail, e := models.GetArticleDetailTestById(sourceId)
- if e != nil {
- err = errors.New("GetArticleDetailTestById" + e.Error())
- return
- }
- articlePermission, e := models.GetArticlePermission(articleDetail.CategoryId)
- if e != nil {
- err = errors.New("GetArticlePermission" + e.Error())
- return
- }
- if articlePermission == nil {
- err = errors.New("报告权限不存在" + e.Error())
- return
- }
- articlePermissionName := articlePermission.PermissionName
- matchTypeName := articlePermission.MatchTypeName
- matchTypeNameArr := []string{"季度策略", "科技前沿(周报)", "本周荟", "智造精粹"}
- //1;四大行业汇总类报告:季度策略、科技前沿(周报)、本周荟、智造精粹以报告类型做标签
- //2:策略、固收的所有报告,以报告类型做标签
- if articlePermissionName == utils.CE_LUE_NAME || articlePermissionName == utils.GU_SHOU_NAME || utils.InArrayByStr(matchTypeNameArr, matchTypeName) { // 策略、固收的所有报告,以报告类型做标签
- if matchTypeName == "季度策略" {
- matchTypeName = articlePermissionName + matchTypeName //其中季度策略以:xx行业季度策略 呈现
- }
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = matchTypeName
- item.SourceType = 8
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = "cygx_article"
- err = models.AddWxUserRaiLabel(item)
- if e != nil {
- err = errors.New("AddWxUserRaiLabel" + e.Error())
- return
- }
- } else if articlePermissionName == utils.ZHOU_QI_NAME {
- //周期的行业深度、调研纪要、产业跟踪这些系列的报告用领域做标签,其余的周期报告,都用报告类型(也就是ficc定义的类型)做标签
- //其中周期的周度观点,以 周期周度观点 呈现
- matchTypeNameArrZhouqi := []string{"行业深度", "调研纪要", "产业跟踪"}
- if utils.InArrayByStr(matchTypeNameArrZhouqi, matchTypeName) {
- matchTypeName = articleDetail.FieldName
- }
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = matchTypeName
- item.SourceType = 8
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = "cygx_article"
- e = models.AddWxUserRaiLabel(item)
- if e != nil {
- err = errors.New("AddWxUserRaiLabel" + e.Error())
- return
- }
- } else {
- //正常的有产业报告
- var labelArr []string
- //建立首页资源表,与产业的关系
- industrialList, e := models.GetIndustrialArticleGroupManagementListByArticleId(sourceId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetIndustrialArticleGroupManagementListByArticleId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
- return
- }
- var items []*models.WxUserRaiLabel
- for _, v := range industrialList {
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = v.IndustryName
- item.SourceType = 7
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = "cygx_article"
- items = append(items, item)
- labelArr = append(labelArr, v.IndustryName)
- }
- //建立首页资源表,与标的 的关系
- subjectList, e := models.GetSubjectArticleGroupManagementListByArtcileId(sourceId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = errors.New("GetSubjectArticleGroupManagementListByArtcileId, Err: " + e.Error() + "sourceId:" + strconv.Itoa(sourceId))
- return
- }
- for _, v := range subjectList {
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = v.SubjectName
- item.SourceType = 7
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = "cygx_article"
- items = append(items, item)
- labelArr = append(labelArr, v.SubjectName)
- }
- e = models.AddWxUserRaiLabelMulti(items, labelArr, userId)
- if e != nil {
- err = errors.New("AddWxUserRaiLabelMulti" + e.Error())
- return
- }
- }
- return
- }
- // 8:报告类型标签 (本周研究汇总,与重点公司)
- func ReportSelectionWxUserRaiLabelRedisAddReduce(log models.WxUserRaiLabelRedis) (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err)
- go utils.SendAlarmMsg("报告类型标签 (本周研究汇总,与重点公司),处理Redis队列消息失败:ReportSelectionWxUserRaiLabelRedisAddReduce"+err.Error()+fmt.Sprint("SourceId", log.SourceId, "userId", log.UserId), 2)
- }
- }()
- userId := log.UserId
- sourceId := log.SourceId
- wxUser, e := models.GetWxUserItemByUserId(userId)
- if e != nil {
- err = errors.New("GetWxUserItemByUserId" + e.Error())
- return
- }
- item := new(models.WxUserRaiLabel)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = log.Label
- item.SourceType = 8
- item.SourceId = sourceId
- item.CreateTime = log.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = log.RegisterPlatform
- item.TableName = log.TableName
- err = models.AddWxUserRaiLabel(item)
- if e != nil {
- err = errors.New("AddWxUserRaiLabel" + e.Error())
- return
- }
- return
- }
- func GetArticlelabelArrByArticleId(articleId int) (labelArr []string, sourceType int) {
- articleDetail, e := models.GetArticleDetailTestById(articleId)
- if e != nil {
- fmt.Println(e)
- return
- }
- if articleDetail.ArticleTypeId > 0 {
- //正常的有产业报告
- //建立首页资源表,与产业的关系
- industrialList, e := models.GetIndustrialArticleGroupManagementListByArticleId(articleId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- fmt.Println(e)
- return
- }
- for _, v := range industrialList {
- labelArr = append(labelArr, v.IndustryName)
- }
- //建立首页资源表,与标的 的关系
- subjectList, e := models.GetSubjectArticleGroupManagementListByArtcileId(articleId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- fmt.Println(e)
- return
- }
- for _, v := range subjectList {
- labelArr = append(labelArr, v.SubjectName)
- }
- sourceType = 7
- return
- }
- articlePermission, e := models.GetArticlePermission(articleDetail.CategoryId)
- if e != nil {
- fmt.Println(e)
- return
- }
- if articlePermission == nil {
- fmt.Println(e)
- return
- }
- articlePermissionName := articlePermission.PermissionName
- matchTypeName := articlePermission.MatchTypeName
- matchTypeNameArr := []string{"季度策略", "科技前沿(周报)", "本周荟", "智造精粹"}
- //1;四大行业汇总类报告:季度策略、科技前沿(周报)、本周荟、智造精粹以报告类型做标签
- //2:策略、固收的所有报告,以报告类型做标签
- //var labelArr []string
- if articlePermissionName == utils.CE_LUE_NAME || articlePermissionName == utils.GU_SHOU_NAME || utils.InArrayByStr(matchTypeNameArr, matchTypeName) { // 策略、固收的所有报告,以报告类型做标签
- if matchTypeName == "季度策略" {
- matchTypeName = articlePermissionName + matchTypeName //其中季度策略以:xx行业季度策略 呈现
- }
- labelArr = append(labelArr, matchTypeName)
- sourceType = 8
- } else if articlePermissionName == utils.ZHOU_QI_NAME {
- //周期的行业深度、调研纪要、产业跟踪这些系列的报告用领域做标签,其余的周期报告,都用报告类型(也就是ficc定义的类型)做标签
- //其中周期的周度观点,以 周期周度观点 呈现
- matchTypeNameArrZhouqi := []string{"行业深度", "调研纪要", "产业跟踪"}
- if utils.InArrayByStr(matchTypeNameArrZhouqi, matchTypeName) {
- matchTypeName = articleDetail.FieldName
- }
- labelArr = append(labelArr, matchTypeName)
- sourceType = 8
- } else {
- //正常的有产业报告
- //建立首页资源表,与产业的关系
- industrialList, e := models.GetIndustrialArticleGroupManagementListByArticleId(articleId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- fmt.Println(e)
- return
- }
- for _, v := range industrialList {
- labelArr = append(labelArr, v.IndustryName)
- }
- //建立首页资源表,与标的 的关系
- subjectList, e := models.GetSubjectArticleGroupManagementListByArtcileId(articleId)
- if e != nil && e.Error() != utils.ErrNoRow() {
- fmt.Println(e)
- return
- }
- for _, v := range subjectList {
- labelArr = append(labelArr, v.SubjectName)
- }
- sourceType = 7
- }
- return
- }
- //func init() {
- // //fmt.Println(GetArticlelabelArrByArticleId(11037))
- // //initCrm16_5Article2()
- //}
- func initCrm16_5keyWord() {
- listKeyWords, err := models.GetSearchKeyWordinitCrm16_5()
- if err != nil {
- fmt.Println(err)
- return
- }
- var mobiles []string
- mapMobile := make(map[string]bool)
- for _, v := range listKeyWords {
- if mapMobile[v.Mobile] || v.Mobile == "" {
- continue
- }
- mapMobile[v.Mobile] = true
- mobiles = append(mobiles, v.Mobile)
- }
- listUser, err := models.GetWxUserListByMobileArr(mobiles)
- if err != nil {
- fmt.Println(err)
- return
- }
- mapUser := make(map[string]*models.WxUserItem)
- for _, v := range listUser {
- mapUser[v.Mobile] = v
- }
- var items []*models.WxUserRaiLabelLog
- for _, v := range listKeyWords {
- if mapUser[v.Mobile] == nil || v.Mobile == "" {
- continue
- }
- wxUser := mapUser[v.Mobile]
- item := new(models.WxUserRaiLabelLog)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = v.KeyWord
- item.SourceType = 1
- item.CreateTime = v.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = v.RegisterPlatform
- items = append(items, item)
- }
- fmt.Println(len(items))
- var itemsAdd []*models.WxUserRaiLabelLog
- if len(items) > 0 {
- for _, v := range items {
- itemsAdd = append(itemsAdd, v)
- if len(items)%2000 == 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(items)
- if err != nil {
- return
- }
- itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
- }
- }
- }
- if len(itemsAdd) > 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
- if err != nil {
- return
- }
- }
- fmt.Println("endAddWxUserRaiLabelLogMultiInit")
- }
- func initCrm16_5Activity() {
- var condition string
- var pars []interface{}
- condition += ` AND create_time > '2024-09-01' AND (is_meeting =1 OR duration != '') `
- pars = append(pars)
- //获取提交到会的人员信息
- signUpDetailList, err := models.GetSignupDetailList(condition, pars)
- if err != nil {
- fmt.Println(err)
- return
- }
- var mobiles []string
- mapMobile := make(map[string]bool)
- for _, v := range signUpDetailList {
- if mapMobile[v.Mobile] || v.Mobile == "" {
- continue
- }
- mapMobile[v.Mobile] = true
- mobiles = append(mobiles, v.Mobile)
- }
- var activityIds []int
- mapactivityId := make(map[int]bool)
- for _, v := range signUpDetailList {
- if mapactivityId[v.ActivityId] {
- continue
- }
- mapactivityId[v.ActivityId] = true
- activityIds = append(activityIds, v.ActivityId)
- }
- listUser, err := models.GetWxUserListByMobileArr(mobiles)
- if err != nil {
- fmt.Println(err)
- return
- }
- mapUser := make(map[string]*models.WxUserItem)
- for _, v := range listUser {
- mapUser[v.Mobile] = v
- }
- activityDetailList, e := models.GetAddActivityDetailByActivityIdinitCrm16_5(activityIds)
- if e != nil {
- fmt.Println(e)
- return
- }
- sourceTypemap := make(map[int]int)
- for _, v := range activityDetailList {
- if v.ActivityType == 1 {
- sourceTypemap[v.ActivityId] = 4
- } else {
- sourceTypemap[v.ActivityId] = 2
- }
- }
- //正常的有产业报告
- //建立首页资源表,与产业的关系
- industrialList, e := models.GetIndustrialActivityGroupManagementListByArticleIds(activityIds)
- if e != nil && e.Error() != utils.ErrNoRow() {
- fmt.Println(e)
- return
- }
- //建立首页资源表,与标的 的关系
- subjectList, e := models.GetSubjectActivityGroupManagementListByActivityIds(activityIds)
- if e != nil && e.Error() != utils.ErrNoRow() {
- fmt.Println(e)
- return
- }
- var items []*models.WxUserRaiLabelLog
- for _, v := range signUpDetailList {
- if mapUser[v.Mobile] == nil || v.Mobile == "" {
- continue
- }
- wxUser := mapUser[v.Mobile]
- for _, vI := range industrialList {
- if vI.ActivityId != v.ActivityId {
- continue
- }
- item := new(models.WxUserRaiLabelLog)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = vI.IndustryName
- item.SourceType = sourceTypemap[v.ActivityId]
- item.SourceId = v.ActivityId
- item.CreateTime = v.CreateTime
- item.ModifyTime = time.Now()
- item.TableName = ""
- //item.RegisterPlatform = v.RegisterPlatform
- items = append(items, item)
- }
- for _, vs := range subjectList {
- if vs.ActivityId != v.ActivityId {
- continue
- }
- item := new(models.WxUserRaiLabelLog)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = vs.SubjectName
- item.SourceType = sourceTypemap[v.ActivityId]
- item.SourceId = v.ActivityId
- item.CreateTime = v.CreateTime
- item.ModifyTime = time.Now()
- //item.RegisterPlatform = v.RegisterPlatform
- items = append(items, item)
- }
- }
- fmt.Println(len(items))
- var itemsAdd []*models.WxUserRaiLabelLog
- if len(items) > 0 {
- for _, v := range items {
- itemsAdd = append(itemsAdd, v)
- if len(itemsAdd)%2000 == 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
- if err != nil {
- return
- }
- itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
- }
- }
- }
- if len(itemsAdd) > 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
- if err != nil {
- return
- }
- }
- fmt.Println("endAddWxUserRaiLabelLogMultiInit")
- }
- func initCrm16_5Article() {
- var condition string
- var pars []interface{}
- condition += ` `
- pars = append(pars)
- //获取提交到会的人员信息
- listArticleIds, err := models.GetCygxArticleHistoryRecordAllListArticleIdCrm16_5()
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println("listArticleIds", len(listArticleIds))
- listHave, err := models.GetWxUserRaiArticleLabelCrm16_5()
- if err != nil {
- fmt.Println(err)
- return
- }
- mapArticleId := make(map[int]bool)
- for _, v := range listHave {
- mapArticleId[v.ArticleId] = true
- }
- for k, v := range listArticleIds {
- fmt.Println(k)
- labelArr, sourceType := GetArticlelabelArrByArticleId(v.ArticleId)
- if len(labelArr) == 0 {
- continue
- }
- var items []*models.WxUserRaiArticleLabel
- for _, v2 := range labelArr {
- item := new(models.WxUserRaiArticleLabel)
- item.ArticleId = v.ArticleId
- item.Label = v2
- item.SourceType = sourceType
- item.CreateTime = time.Now()
- items = append(items, item)
- }
- err = models.AddWxUserRaiArticleLabelMultiInit(items)
- time.Sleep(time.Millisecond * 100)
- fmt.Println(err)
- }
- }
- func initCrm16_5Article2() {
- var condition string
- var pars []interface{}
- condition += ` `
- pars = append(pars)
- //获取提交到会的人员信息
- listArticleIds, err := models.GetCygxArticleHistoryRecordAllListUserIdCrm16_5()
- if err != nil {
- fmt.Println(err)
- return
- }
- fmt.Println("listArticleIds", len(listArticleIds))
- mapUserId := make(map[string]bool)
- var mobiles []string
- for _, v := range listArticleIds {
- if mapUserId[v.Mobile] {
- continue
- }
- mobiles = append(mobiles, v.Mobile)
- mapUserId[v.Mobile] = true
- }
- listUser, err := models.GetWxUserListByMobileArr(mobiles)
- if err != nil {
- fmt.Println(err)
- return
- }
- mapUser := make(map[string]*models.WxUserItem)
- for _, v := range listUser {
- mapUser[v.Mobile] = v
- }
- listArticleLabel, err := models.GetWxUserRaiArticleLabelAllCrm16_5()
- if err != nil {
- fmt.Println(err)
- return
- }
- mapArticleLabel := make(map[int][]string)
- mapArticleType := make(map[int]int)
- for _, v := range listArticleLabel {
- mapArticleLabel[v.ArticleId] = append(mapArticleLabel[v.ArticleId], v.Label)
- mapArticleType[v.ArticleId] = v.SourceType
- }
- var items []*models.WxUserRaiLabelLog
- for _, v := range listArticleIds {
- if mapUser[v.Mobile] == nil || v.Mobile == "" {
- continue
- }
- if len(mapArticleLabel[v.ArticleId]) == 0 {
- continue
- }
- wxUser := mapUser[v.Mobile]
- for _, vI := range mapArticleLabel[v.ArticleId] {
- item := new(models.WxUserRaiLabelLog)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- item.Label = vI
- item.SourceType = mapArticleType[v.ArticleId]
- item.SourceId = v.ArticleId
- item.CreateTime = utils.StrTimeToTime(v.CreateTime)
- item.ModifyTime = time.Now()
- item.TableName = "cygx_article"
- //item.RegisterPlatform = v.RegisterPlatform
- items = append(items, item)
- }
- }
- fmt.Println("items", len(items))
- var itemsAdd []*models.WxUserRaiLabelLog
- if len(items) > 0 {
- for _, v := range items {
- itemsAdd = append(itemsAdd, v)
- if len(itemsAdd)%2000 == 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
- if err != nil {
- fmt.Println(err)
- return
- }
- itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
- }
- }
- }
- if len(itemsAdd) > 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
- if err != nil {
- fmt.Println(err)
- return
- }
- }
- fmt.Println("endAddWxUserRaiLabelLogMultiInit")
- }
- func initCrm16_5ReportHistory() {
- listReportHistory, err := models.GetWxUserRaiCygxReportHistoryRecordCrm16_5()
- if err != nil {
- fmt.Println(err)
- return
- }
- var mobiles []string
- mapMobile := make(map[string]bool)
- for _, v := range listReportHistory {
- if mapMobile[v.Mobile] || v.Mobile == "" {
- continue
- }
- mapMobile[v.Mobile] = true
- mobiles = append(mobiles, v.Mobile)
- }
- listUser, err := models.GetWxUserListByMobileArr(mobiles)
- if err != nil {
- fmt.Println(err)
- return
- }
- mapUser := make(map[string]*models.WxUserItem)
- for _, v := range listUser {
- mapUser[v.Mobile] = v
- }
- var items []*models.WxUserRaiLabelLog
- for _, v := range listReportHistory {
- if mapUser[v.Mobile] == nil || v.Mobile == "" {
- continue
- }
- wxUser := mapUser[v.Mobile]
- item := new(models.WxUserRaiLabelLog)
- item.UserId = wxUser.UserId
- item.RealName = wxUser.RealName
- item.Mobile = wxUser.Mobile
- item.Email = wxUser.Email
- item.CompanyId = wxUser.CompanyId
- item.CompanyName = wxUser.CompanyName
- if v.ReportType == "" {
- item.Label = "重点推荐"
- } else {
- item.Label = "本周研究汇总"
- }
- item.SourceType = 8
- item.CreateTime = v.CreateTime
- item.ModifyTime = time.Now()
- item.RegisterPlatform = v.RegisterPlatform
- items = append(items, item)
- }
- fmt.Println(len(items))
- var itemsAdd []*models.WxUserRaiLabelLog
- if len(items) > 0 {
- for _, v := range items {
- itemsAdd = append(itemsAdd, v)
- if len(items)%2000 == 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(items)
- if err != nil {
- return
- }
- itemsAdd = make([]*models.WxUserRaiLabelLog, 0)
- }
- }
- }
- if len(itemsAdd) > 0 {
- err = models.AddWxUserRaiLabelLogMultiInit(itemsAdd)
- if err != nil {
- return
- }
- }
- fmt.Println("endAddWxUserRaiLabelLogMultiInit")
- }
|