Browse Source

Merge remote-tracking branch 'origin/rag/3.1' into debug

Roc 4 days ago
parent
commit
6784a210c1
1 changed files with 31 additions and 20 deletions
  1. 31 20
      services/report_rai.go

+ 31 - 20
services/report_rai.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"encoding/json"
+	"eta/eta_api/cache"
 	"eta/eta_api/models"
 	"eta/eta_api/models/report"
 	"eta/eta_api/services/alarm_msg"
@@ -47,7 +48,7 @@ func HandleInsertRaiReport(raiReportId int) (err error) {
 	if err != nil {
 		fmt.Println(err)
 		err = fmt.Errorf("获取权益报告失败, Err: %s", err.Error())
-		return 
+		return
 	}
 	var articleResultDate models.ArticleDetailResultApi
 	err = json.Unmarshal(body, &articleResultDate)
@@ -55,7 +56,7 @@ func HandleInsertRaiReport(raiReportId int) (err error) {
 		fmt.Println("Getres.PublicGetDate Err:", err.Error())
 		return err
 	}
-	
+
 	articleResult := articleResultDate.Data
 	err = handleInsertRaiReport(articleResult)
 	if err != nil {
@@ -90,7 +91,7 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 	// if err != nil {
 	// 	fmt.Println(err)
 	// 	err = fmt.Errorf("获取权益报告失败, Err: %s", err.Error())
-	// 	return 
+	// 	return
 	// }
 	// var articleResultDate models.ArticleDetailResultApi
 	// err = json.Unmarshal(body, &articleResultDate)
@@ -98,7 +99,7 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 	// 	fmt.Println("Getres.PublicGetDate Err:", err.Error())
 	// 	return err
 	// }
-	
+
 	// articleResult := articleResultDate.Data
 	// 判断是否是固收研究
 	if articleResult.IndustrId != 12 {
@@ -154,12 +155,16 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 		}
 		state := reportInfo.State
 
+		publishSource := `publish` //同步至知识库
+
 		// 报告已存在,更新报告
 		if (articleResult.PublishStatus == 2 || articleResult.PublishStatus == 4) && articleResult.IsActive {
 			// 报告状态为未发布,则更新报告
 			state = models.ReportStatePublished
 			reportInfo.PublishTime = articleResult.PublishDate
-		}else if !articleResult.IsActive {
+		} else if !articleResult.IsActive {
+			publishSource = `un_publish` //同步至知识库
+
 			// 删除报告
 			err = models.DeleteReport(reportInfo.Id)
 			if err != nil {
@@ -168,11 +173,12 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 			}
 			go UpdateReportEs(reportInfo.Id, 1)
 			return
-		}else {
+		} else {
+			publishSource = `un_publish` //同步至知识库
+
 			// 报告状态为未发布,则更新报告
 			state = models.ReportStateUnpublished
 			reportInfo.PublishTime = articleResult.PublishDate
-			
 		}
 		// 过滤Abstracthtml标签,把<p>标签去掉
 		abstract := strings.ReplaceAll(articleResult.Content.Abstract, "<p>", "")
@@ -193,7 +199,7 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 		reportInfo.ModifyTime = articleResult.UpdateDate
 
 		// 报告更新
-		updateCols := []string{"ClassifyIdFirst","ClassifyNameFirst","ClassifyIdSecond","ClassifyNameSecond","Title","Abstract","Author","Frequency","State","Content","ContentSub","ModifyTime","PublishTime"}
+		updateCols := []string{"ClassifyIdFirst", "ClassifyNameFirst", "ClassifyIdSecond", "ClassifyNameSecond", "Title", "Abstract", "Author", "Frequency", "State", "Content", "ContentSub", "ModifyTime", "PublishTime"}
 		err = reportInfo.UpdateReport(updateCols)
 		if err != nil {
 			err = fmt.Errorf("更新报告失败, Err: %s", err.Error())
@@ -203,12 +209,15 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 		if state == models.ReportStatePublished {
 			// 报告权限处理
 			go handleReportPermission(int64(reportInfo.Id), reportInfo.ClassifyIdSecond)
-		}else {
+		} else {
 			// 重置小程序详情页海报
 			_ = ResetMiniProgramReportDetailCover(reportInfo.Id)
 		}
 
-	}else if reportInfo.Id == 0 {
+		// 报告发布成功后,需要将相关信息入知识库
+		go cache.RagEtaReportOpToCache(reportInfo.Id, 0, publishSource)
+
+	} else if reportInfo.Id == 0 {
 		// 报告不存在,创建报告
 		// 判断状态
 		if (articleResult.PublishStatus == 2 || articleResult.PublishStatus == 4) && articleResult.IsActive {
@@ -221,22 +230,22 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 			}
 
 			// 已发布状态
-			state :=  models.ReportStatePublished
+			state := models.ReportStatePublished
 
 			// 协作方式,1:个人,2:多人协作。默认:1
 			collaborateType := 1
-	
+
 			// 报告布局,1:常规布局,2:智能布局。默认:1
 			reportLayout := 1
-	
+
 			// 是否公开发布,1:是,2:否
 			isPublicPublish := 1
-	
+
 			abstract := strings.ReplaceAll(articleResult.Content.Abstract, "<p>", "")
 			abstract = strings.ReplaceAll(abstract, "</p>", "")
 
 			item := new(models.Report)
-			item.AddType = 	1
+			item.AddType = 1
 			item.ReportVersion = 2
 			item.ClassifyIdFirst = classifyFirst.Id
 			item.ClassifyNameFirst = articleResult.Industry.Name
@@ -293,12 +302,14 @@ func handleInsertRaiReport(articleResult models.ArticleResultApidate) (err error
 				go models.ModifyReportCode(reportId, reportCode)
 			}
 
-
 			// 报告权限处理
 			go handleReportPermission(reportId, item.ClassifyIdSecond)
 
 			// 更新报告Es
 			_ = UpdateReportEs(int(reportId), 2)
+
+			// 报告发布成功后,需要将相关信息入知识库
+			go cache.RagEtaReportOpToCache(int(reportId), 0, `publish`)
 		}
 	}
 
@@ -332,7 +343,7 @@ func getRaiReportLib(url string) (body []byte, err error) {
 		return
 	}
 	defer res.Body.Close()
-	body, err = ioutil.ReadAll(res.Body) 
+	body, err = ioutil.ReadAll(res.Body)
 	if err != nil {
 		return
 	}
@@ -355,11 +366,11 @@ func RaiReportInit() (err error) {
 	successCount := 0
 	failCount := 0
 	for i := 0; i <= totalPage; i++ {
-		pageindex := i*pageSize 
+		pageindex := i * pageSize
 		body, er := getRaiReportLib(fmt.Sprintf("%s/articles/mp?take=%d&skip=%d&publish_status=2&industry_id=12", utils.RaiReportLibUrl, pageSize, pageindex))
 		if er != nil {
 			err = fmt.Errorf("获取权益报告失败, Err: %s", er.Error())
-			return 
+			return
 		}
 		// 解析内容,获取真实的分页总数
 		var articleResultDate models.RaiArticleListResultApi
@@ -380,7 +391,7 @@ func RaiReportInit() (err error) {
 				fmt.Printf("导入固收研究的历史报告失败%d, Err: %s\n", articleResult.ArticleId, err.Error())
 				failCount++
 				continue
-			}else {
+			} else {
 				fmt.Printf("导入固收研究的历史报告成功%d\n", articleResult.ArticleId)
 				successCount++
 			}