package cygx import ( "fmt" "hongze/hz_crm_api/models/cygx" "hongze/hz_crm_api/services/alarm_msg" "hongze/hz_crm_api/utils" "strconv" "strings" ) //func init() { // HandleTacticsTimeLinLink("https://web.hzinsights.com/charts/5577") //} // 处理传过来的链接,获取文章或者图表的ID详情 func HandleTacticsTimeLinLink(link string) (articleId, chartId int) { sliceLink := strings.Split(link, "/") resourceId := sliceLink[len(sliceLink)-1] if strings.Contains(link, "info") { articleId, _ = strconv.Atoi(resourceId) } else if strings.Contains(link, "charts") { chartId, _ = strconv.Atoi(resourceId) } return } // 获取策略时间线的阅读数据 func GetCygxTacticsTimeLineHistoryListMap(timeLineIds []int) (mapPv, mapUv map[int]int) { var err error defer func() { if err != nil { go alarm_msg.SendAlarmMsg("获取策略时间线的阅读数据,信息失败,Err:"+err.Error(), 3) } }() lentimeLineIds := len(timeLineIds) if lentimeLineIds == 0 { return } var condition string var pars []interface{} condition = ` AND time_line_id IN (` + utils.GetOrmInReplace(lentimeLineIds) + `)` pars = append(pars, timeLineIds) list, err := cygx.GetCygxTacticsTimeLineHistoryList(condition, pars) if err != nil { return } mapPv = make(map[int]int, 0) mapUv = make(map[int]int, 0) mapUvCount := make(map[string]int, 0) for _, v := range list { mapPv[v.TimeLineId]++ if _, ok := mapUvCount[fmt.Sprint("UID_", v.UserId, "TimeLineId_", v.TimeLineId)]; !ok { mapUvCount[fmt.Sprint("UID_", v.UserId, "TimeLineId_", v.TimeLineId)] = v.TimeLineId mapUv[v.TimeLineId]++ } } return } // GetArticleTitleMapByid 通过文章ID获取文章标题 map func GetArticleTitleMapByid(articleIds []int) (mapResp map[int]string) { var err error defer func() { if err != nil { go alarm_msg.SendAlarmMsg("通过文章ID获取文章标题 map,信息失败,Err:"+err.Error(), 3) } }() lenarticleIds := len(articleIds) if lenarticleIds == 0 { return } var condition string var pars []interface{} condition = ` AND article_id IN (` + utils.GetOrmInReplace(lenarticleIds) + `) ` pars = append(pars, articleIds) articleList, err := cygx.GetCygxArticleList(condition, pars, 0, lenarticleIds) if err != nil { return } mapResp = make(map[int]string, 0) for _, v := range articleList { mapResp[v.ArticleId] = v.Title } return } // 获取固收时间线的阅读数据 func GetCygxGushouTimeLineHistoryListMap(timeLineIds []int) (mapPv, mapUv map[int]int) { var err error defer func() { if err != nil { go alarm_msg.SendAlarmMsg("获取固收时间线的阅读数据,信息失败,GetCygxGushouTimeLineHistoryListMap Err:"+err.Error(), 3) } }() lentimeLineIds := len(timeLineIds) if lentimeLineIds == 0 { return } var condition string var pars []interface{} condition = ` AND time_line_id IN (` + utils.GetOrmInReplace(lentimeLineIds) + `)` pars = append(pars, timeLineIds) list, err := cygx.GetCygxGushouTimeLineHistoryList(condition, pars) if err != nil { return } mapPv = make(map[int]int, 0) mapUv = make(map[int]int, 0) mapUvCount := make(map[string]int, 0) for _, v := range list { mapPv[v.TimeLineId]++ if _, ok := mapUvCount[fmt.Sprint("UID_", v.UserId, "TimeLineId_", v.TimeLineId)]; !ok { mapUvCount[fmt.Sprint("UID_", v.UserId, "TimeLineId_", v.TimeLineId)] = v.TimeLineId mapUv[v.TimeLineId]++ } } return }