ziwen 2 yıl önce
ebeveyn
işleme
97abe0d828

+ 23 - 0
models/data_manage/cygx_research_summary.go

@@ -69,3 +69,26 @@ type AddCygxResearchSummaryLog struct {
 	ReportLink          string `description:"报告链接"`
 	ChartPermissionSort string `description:"行业排序"`
 }
+
+type CygxArticleSubjectList struct {
+	ArticleId   int    `description:"报告id"`
+	SubjectName string `description:"标的名称"`
+}
+
+//文章标的列表
+func GetArticleSubjectList(articleId string) (items []*CygxArticleSubjectList, err error) {
+	if articleId == "" {
+		articleId = "0"
+	}
+	o := orm.NewOrm()
+	sql := ` SELECT GROUP_CONCAT( DISTINCT s.subject_name SEPARATOR '#' )  AS subject_name,
+			 sg.article_id
+			FROM
+				cygx_industrial_article_group_subject AS sg
+				LEFT  JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = sg.industrial_subject_id 
+			WHERE
+				sg.article_id IN (` + articleId + `)
+				GROUP BY sg.article_id`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 63 - 26
services/cygx_research_summary.go

@@ -128,7 +128,7 @@ func CygxResearchSummary(cont context.Context) (err error) {
 
 		var logItems []*data_manage.CygxResearchSummaryLog
 		for _, article := range sdbgList {
-			head := "<div class=\"title-content\">\n<strong> 【" + article.Title + "】</strong>\n    "
+			head := "<div class=\"title-content\">\n 【" + article.Title + "】    "
 			sliceSubjects := strings.Split(article.Stock, "/")
 			var company string
 			if sliceSubjects[0] != "" {
@@ -230,7 +230,7 @@ func CygxResearchSummary(cont context.Context) (err error) {
 
 		var logItems []*data_manage.CygxResearchSummaryLog
 		for _, article := range cydyjyList {
-			head := "<div class=\"title-content\">\n<strong> 【" + article.Title + "】</strong>\n    "
+			head := "<div class=\"title-content\">\n 【" + article.Title + "】    "
 			sliceSubjects := strings.Split(article.Stock, "/")
 			var company string
 			if sliceSubjects[0] != "" {
@@ -333,7 +333,7 @@ func CygxResearchSummary(cont context.Context) (err error) {
 
 		var logItems []*data_manage.CygxResearchSummaryLog
 		for _, article := range ssgsdyjyList {
-			head := "<div class=\"title-content\">\n<strong> 【" + article.Title + "】</strong>\n    "
+			head := "<div class=\"title-content\">\n 【" + article.Title + "】    "
 			sliceSubjects := strings.Split(article.Stock, "/")
 			var company string
 			if sliceSubjects[0] != "" {
@@ -416,24 +416,42 @@ func CygxResearchSummary(cont context.Context) (err error) {
 				mfyxList = append(mfyxList, article)
 			}
 		}
-		fmt.Println("mfyxList:", len(mfyxList))
+		var articleIdStr string
+		for _, v := range mfyxList {
+			articleIdStr += strconv.Itoa(v.ArticleId) + ","
+		}
+		mapArticleSubject := make(map[int]string)
+		articleIdStr = strings.TrimRight(articleIdStr, ",")
+		listSubject, e := data_manage.GetArticleSubjectList(articleIdStr)
+		if e != nil {
+			err = e
+			fmt.Println("GetArticleSubjectList err:", e)
+			return
+		}
+		for _, v := range listSubject {
+			mapArticleSubject[v.ArticleId] = v.SubjectName
+		}
 		var logItems []*data_manage.CygxResearchSummaryLog
 		for _, article := range mfyxList {
-			head := "<div class=\"title-content\">\n<strong> 【" + article.Title + "】</strong>\n    "
+			head := "<div class=\"title-content\">\n 【" + article.Title + "】    "
 			body := strings.ReplaceAll(article.Body, "<strong>", "")
 			body = strings.ReplaceAll(body, "</strong>", "")
 			re, _ := regexp.Compile("<strong.*?>")
 			body = re.ReplaceAllString(body, "")
-			sliceSubjects := strings.Split(article.Stock, "/")
+			//研选的公司需要单独处理
+			//sliceSubjects := strings.Split(article.Stock, "/")
 			var company string
-			if sliceSubjects[0] != "" {
-				for _, vSubject := range sliceSubjects {
-					sliceKuohao := strings.Split(vSubject, "(")           //过滤括号
-					sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
-					subject := sliceXiahuaxian[0]
-					company += "#" + subject
-				}
-				company = "    <span style=\"color: #ff1720\">" + company + "</span>"
+			//if sliceSubjects[0] != "" {
+			//	for _, vSubject := range sliceSubjects {
+			//		sliceKuohao := strings.Split(vSubject, "(")           //过滤括号
+			//		sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
+			//		subject := sliceXiahuaxian[0]
+			//		company += "#" + subject
+			//	}
+			//	company = "    <span style=\"color: #ff1720\">" + company + "</span>"
+			//}
+			if mapArticleSubject[article.ArticleId] != ""{
+				company = "    <span style=\"color: #ff1720\">"+"#"+mapArticleSubject[article.ArticleId]+"</span>"
 			}
 			var plus int
 			coreIndex := strings.Index(body, "核心观点:")
@@ -601,7 +619,7 @@ func CygxLastWeekSummary(cont context.Context) (err error) {
 
 		var logItems []*data_manage.CygxMinutesSummaryLog
 		for _, article := range cydyjyList {
-			head := "<div class=\"title-content\">\n<strong> 【" + article.Title + "】</strong>\n    "
+			head := "<div class=\"title-content\">\n 【" + article.Title + "】    "
 			sliceSubjects := strings.Split(article.Stock, "/")
 			var company string
 			if sliceSubjects[0] != "" {
@@ -704,7 +722,7 @@ func CygxLastWeekSummary(cont context.Context) (err error) {
 
 		var logItems []*data_manage.CygxMinutesSummaryLog
 		for _, article := range ssgsdyjyList {
-			head := "<div class=\"title-content\">\n<strong> 【" + article.Title + "】</strong>\n    "
+			head := "<div class=\"title-content\">\n 【" + article.Title + "】    "
 			sliceSubjects := strings.Split(article.Stock, "/")
 			var company string
 			if sliceSubjects[0] != "" {
@@ -788,23 +806,42 @@ func CygxLastWeekSummary(cont context.Context) (err error) {
 		//	}
 		//}
 		fmt.Println("mfyxList:", len(mfyxList))
+		var articleIdStr string
+		for _, v := range mfyxList {
+			articleIdStr += strconv.Itoa(v.ArticleId) + ","
+		}
+		mapArticleSubject := make(map[int]string)
+		articleIdStr = strings.TrimRight(articleIdStr, ",")
+		listSubject, e := data_manage.GetArticleSubjectList(articleIdStr)
+		if e != nil {
+			err = e
+			fmt.Println("GetArticleSubjectList err:", e)
+			return
+		}
+		for _, v := range listSubject {
+			mapArticleSubject[v.ArticleId] = v.SubjectName
+		}
 		var logItems []*data_manage.CygxMinutesSummaryLog
 		for _, article := range mfyxList {
-			head := "<div class=\"title-content\">\n<strong> 【" + article.Title + "】</strong>\n    "
+			head := "<div class=\"title-content\">\n 【" + article.Title + "】    "
 			body := strings.ReplaceAll(article.Body, "<strong>", "")
 			body = strings.ReplaceAll(body, "</strong>", "")
 			re, _ := regexp.Compile("<strong.*?>")
 			body = re.ReplaceAllString(body, "")
-			sliceSubjects := strings.Split(article.Stock, "/")
+			//研选的公司需要单独处理
+			//sliceSubjects := strings.Split(article.Stock, "/")
 			var company string
-			if sliceSubjects[0] != "" {
-				for _, vSubject := range sliceSubjects {
-					sliceKuohao := strings.Split(vSubject, "(")           //过滤括号
-					sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
-					subject := sliceXiahuaxian[0]
-					company += "#" + subject
-				}
-				company = "    <span style=\"color: #ff1720\">" + company + "</span>"
+			//if sliceSubjects[0] != "" {
+			//	for _, vSubject := range sliceSubjects {
+			//		sliceKuohao := strings.Split(vSubject, "(")           //过滤括号
+			//		sliceXiahuaxian := strings.Split(sliceKuohao[0], "-") //过滤下划线
+			//		subject := sliceXiahuaxian[0]
+			//		company += "#" + subject
+			//	}
+			//	company = "    <span style=\"color: #ff1720\">" + company + "</span>"
+			//}
+			if mapArticleSubject[article.ArticleId] != ""{
+				company = "    <span style=\"color: #ff1720\">"+"#"+mapArticleSubject[article.ArticleId]+"</span>"
 			}
 			var plus int
 			coreIndex := strings.Index(body, "核心观点:")