Browse Source

Merge branch 'cygx_10.5.2' of http://8.136.199.33:3000/hongze/hongze_cygx

xingzai 1 year ago
parent
commit
9d628728dd
3 changed files with 70 additions and 8 deletions
  1. 2 0
      models/article.go
  2. 1 0
      models/tactics.go
  3. 67 8
      services/article.go

+ 2 - 0
models/article.go

@@ -47,6 +47,7 @@ type CygxArticle struct {
 	TypeName         string `description:"策略平台报告类型"`
 	ModifyTimeByCl   string `description:"策略平台报告更新时间"`
 	CeLueFieldId     int    `description:"策略平台领域ID"`
+	Cover            string `description:"封面图片"`
 }
 
 type CygxArticleEs struct {
@@ -112,6 +113,7 @@ type HomeArticle struct {
 	IsReport            int                  `description:"是否属于报告,1是,0否"`
 	ArticleResponse     int                  `description:"报告类型 0:啥也不是,1研选报告,2:研选纪要,3:研选沙龙,4;研选观点"`
 	Readnum             int                  `description:"阅读数量"`
+	Cover               string               `description:"封面图片"`
 	List                []*IndustrialManagementIdInt
 }
 

+ 1 - 0
models/tactics.go

@@ -84,6 +84,7 @@ type Tactics2 struct {
 	TypeName        string    `description:"策略平台报告类型"`
 	UpdateDate      string    `description:"策略平台报告更新时间"`
 	CeLueFieldId    int       `description:"策略平台领域ID"`
+	Cover           string    `description:"封面图片"`
 }
 
 func GetTacticsList2(endDate string) (list []*Tactics2, err error) {

+ 67 - 8
services/article.go

@@ -675,15 +675,15 @@ func GetArticleListByApi(cont context.Context) (err error) {
 }
 
 //func init() {
-// allList, err := models.GetArticleAll()
+//	// allList, err := models.GetArticleAll()
+//	//
+//	// fmt.Println(err)
+//	//
+//	//	for _, v := range allList {
+//	//		HandleArticleListByApi(v.ArticleId)
+//	//	}
+//	HandleArticleListByApi(8785)
 //
-// fmt.Println(err)
-//
-//	for _, v := range allList {
-//		HandleArticleListByApi(v.ArticleId)
-//	}
-//HandleArticleListByApi(8112)
-
 //}
 
 // 处理同步过来的文章
@@ -755,6 +755,14 @@ func HandleArticleListByApi(artcleId int) (err error) {
 		return
 	}
 
+	var cover string
+	if articleResult.Series.Name == "图解市场" {
+		cover = GetArticleCoverByChartFirst(articleResult.Content.Body)
+	} else if articleResult.Series.Name == "行业深度" {
+		cover = articleResult.Cover
+	}
+	fmt.Println(cover)
+	//return
 	//状态等于 2 跟 4 的进行同步 IsActive 为false 软删除的也不同步
 	if exitMap[articleResult.SeriesId] > 0 && (articleResult.PublishStatus == 2 || articleResult.PublishStatus == 4) && articleResult.IsActive {
 		articleResult.PublishDate = time.Date(articleResult.PublishDate.Year(), articleResult.PublishDate.Month(), articleResult.PublishDate.Day(), articleResult.PublishDate.Hour(), articleResult.PublishDate.Minute(), articleResult.PublishDate.Second(), articleResult.PublishDate.Nanosecond(), time.Local)
@@ -792,6 +800,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 		item.CategoryId = exitMap[articleResult.SeriesId]
 		item.CategoryIdTwo = exitMap[articleResult.SeriesId]
 		item.SubCategoryName = articleResult.Series.Name
+		item.Cover = cover
 		if len(articleResult.Stock) > 0 {
 			var stock string
 			for _, vS := range articleResult.Stock {
@@ -991,6 +1000,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 			updateParams["TypeName"] = v.TypeName
 			updateParams["ModifyTimeByCl"] = v.UpdateDate
 			updateParams["CeLueFieldId"] = v.CeLueFieldId
+			updateParams["Cover"] = v.Cover
 			whereParam := map[string]interface{}{"article_id": v.ArticleId}
 			err = models.UpdateByExpr(models.CygxArticle{}, whereParam, updateParams)
 			if err != nil {
@@ -1034,6 +1044,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 			item.TypeName = v.TypeName
 			item.ModifyTimeByCl = v.UpdateDate
 			item.CeLueFieldId = v.CeLueFieldId
+			item.Cover = v.Cover
 			newId, err := models.AddCygxArticles(item)
 			if err != nil {
 				fmt.Println("AddCygxArticle Err:", err.Error())
@@ -2079,3 +2090,51 @@ func GetAiQianYanArtilceList(startSize, pageSize int) (items []*models.ReportArt
 	}
 	return
 }
+
+// 获取文章内部图表的第一张封面图
+func GetArticleCoverByChartFirst(body string) (cover string) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("获取文章内部图表的第一张封面图失败,Err:"+err.Error()+body, 3)
+		}
+	}()
+	var chartUrl string
+	var hrefRegexp = regexp.MustCompile(utils.RegularUrl)
+	match := hrefRegexp.FindAllString(body, -1)
+	if match != nil {
+		for _, v := range match {
+			if strings.Contains(v, "charts/display") {
+				chartUrl = v
+				break
+			}
+		}
+	}
+	if chartUrl != "" {
+		urlSlice := strings.Split(chartUrl, "/")
+		lenurlSlice := len(urlSlice)
+		sourceId, _ := strconv.Atoi(urlSlice[lenurlSlice-1])
+		if sourceId == 0 {
+			sourceId, _ = strconv.Atoi(urlSlice[lenurlSlice-2])
+		}
+		if sourceId == 0 {
+			err = errors.New("新的图标链接无法解析" + chartUrl)
+			return
+		}
+		chartUrlApi := utils.ApiUrl + "charts/" + strconv.Itoa(sourceId)
+		authorization := utils.ApiAuthorization
+		body, e := PublicGetDate(chartUrlApi, authorization)
+		if e != nil {
+			err = errors.New("PublicGetDate" + err.Error())
+			return
+		}
+		var resultDate models.ChartResultDetailApi
+		e = json.Unmarshal(body, &resultDate)
+		if e != nil {
+			err = errors.New(" json.Unmarshal" + err.Error())
+		}
+		cover = resultDate.Data.Cover
+	}
+	return
+}