瀏覽代碼

no message

xingzai 1 年之前
父節點
當前提交
f0d4f3f33e
共有 3 個文件被更改,包括 66 次插入6 次删除
  1. 1 0
      models/article.go
  2. 1 0
      models/tactics.go
  3. 64 6
      services/article.go

+ 1 - 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 {

+ 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) {

+ 64 - 6
services/article.go

@@ -675,14 +675,14 @@ func GetArticleListByApi(cont context.Context) (err error) {
 }
 
 //func init() {
-// allList, err := models.GetArticleAll()
+//allList, err := models.GetArticleAll()
 //
-// fmt.Println(err)
+//fmt.Println(err)
 //
-//	for _, v := range allList {
-//		HandleArticleListByApi(v.ArticleId)
-//	}
-//HandleArticleListByApi(8112)
+//for _, v := range allList {
+//	HandleArticleListByApi(v.ArticleId)
+//}
+//HandleArticleListByApi(8220)
 
 //}
 
@@ -755,6 +755,11 @@ func HandleArticleListByApi(artcleId int) (err error) {
 		return
 	}
 
+	var cover string
+	if articleResult.Series.Name == "图解市场" {
+		cover = GetArticleCoverByChartFirst(articleResult.Content.Body)
+	}
+	fmt.Println(cover)
 	//状态等于 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 +797,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 +997,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 +1041,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())
@@ -2043,3 +2051,53 @@ func GetArticleStockMap() (mapResp map[string]int, err error) {
 	}
 	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
+	}
+	fmt.Println(chartUrl)
+	return
+}