xingzai 1 an în urmă
părinte
comite
dc0831e51d
3 a modificat fișierele cu 46 adăugiri și 26 ștergeri
  1. 26 25
      models/home.go
  2. 1 0
      models/resource_data.go
  3. 19 1
      services/es_comprehensive.go

+ 26 - 25
models/home.go

@@ -49,31 +49,32 @@ type HomeArticle struct {
 }
 
 type ArticleListResp struct {
-	ArticleId           int    `description:"文章id"`
-	Title               string `description:"标题"`
-	TitleEn             string `description:"英文标题 "`
-	PublishDate         string `description:"发布时间"`
-	Body                string `description:"内容"`
-	Abstract            string `description:"摘要"`
-	ExpertBackground    string `description:"专家背景"`
-	IsResearch          bool   `description:"是否属于研选"`
-	Pv                  int    `description:"PV"`
-	ImgUrlPc            string `description:"图片链接"`
-	CategoryId          string `description:"文章分类"`
-	HttpUrl             string `description:"文章链接跳转地址"`
-	IsNeedJump          bool   `description:"是否需要跳转链接地址"`
-	Source              int    `description:"来源  1:文章, 2:图表"`
-	Annotation          string `description:"核心观点"`
-	ChartPermissionName string `description:"权限名称"`
-	ArticleTypeId       int    `description:"文章类型ID判断是否是研选使用"`
-	BodyImg             string `description:"文章封面图片"`
-	DepartmentId        int    `description:"作者Id"`
-	NickName            string `description:"作者昵称"`
-	IsCollect           bool   `description:"本人是否收藏"`
-	IsRed               bool   `description:"是否标红"`
-	CollectNum          int    `description:"收藏人数"`
-	Resource            int    `description:"来源类型,1:文章、2:产品内测"`
-	Cover               string `description:"封面图片"`
+	ArticleId           int      `description:"文章id"`
+	Title               string   `description:"标题"`
+	TitleEn             string   `description:"英文标题 "`
+	PublishDate         string   `description:"发布时间"`
+	Body                string   `description:"内容"`
+	Abstract            string   `description:"摘要"`
+	ExpertBackground    string   `description:"专家背景"`
+	IsResearch          bool     `description:"是否属于研选"`
+	Pv                  int      `description:"PV"`
+	ImgUrlPc            string   `description:"图片链接"`
+	CategoryId          string   `description:"文章分类"`
+	HttpUrl             string   `description:"文章链接跳转地址"`
+	IsNeedJump          bool     `description:"是否需要跳转链接地址"`
+	Source              int      `description:"来源  1:文章, 2:图表"`
+	Annotation          string   `description:"核心观点"`
+	ChartPermissionName string   `description:"权限名称"`
+	ArticleTypeId       int      `description:"文章类型ID判断是否是研选使用"`
+	BodyImg             string   `description:"文章封面图片"`
+	DepartmentId        int      `description:"作者Id"`
+	NickName            string   `description:"作者昵称"`
+	IsCollect           bool     `description:"本人是否收藏"`
+	IsRed               bool     `description:"是否标红"`
+	CollectNum          int      `description:"收藏人数"`
+	Resource            int      `description:"来源类型,1:文章、2:产品内测"`
+	Cover               string   `description:"封面图片"`
+	BodyHighlight       []string `description:"搜索高亮展示结果"`
 	List                []*IndustrialManagementIdInt
 }
 

+ 1 - 0
models/resource_data.go

@@ -86,6 +86,7 @@ type HomeResourceDataListNewResp struct {
 
 type CygxResourceDataNewResp struct {
 	Id                 int                                     `orm:"column(id);pk"`
+	BodyHighlight      []string                                `description:"搜索高亮展示结果"`
 	SourceId           int                                     `description:"资源ID"`
 	Source             string                                  `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
 	PublishDate        string                                  `description:"发布时间"`

+ 19 - 1
services/es_comprehensive.go

@@ -242,7 +242,7 @@ func EsComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*S
 						searchItem.Body = append(searchItem.Body, vText)
 					}
 				}
-
+				searchItem.IsSummary = article.IsSummary
 				if len(searchItem.Body) == 0 {
 					bodyRune := []rune(article.BodyText)
 					bodyRuneLen := len(bodyRune)
@@ -731,6 +731,8 @@ func GetResourceDataEsList(list []*SearchComprehensiveItem, user *models.WxUserI
 	var condition string
 	var pars []interface{}
 	uid := user.UserId
+	titleHighlight := make(map[int]string)
+	bodyHighlight := make(map[int][]string)
 	mapItems := make(map[string]*models.CygxResourceDataNewResp)
 	for _, v := range list {
 		//预处理文章
@@ -738,6 +740,14 @@ func GetResourceDataEsList(list []*SearchComprehensiveItem, user *models.WxUserI
 		item.SourceId = v.SourceId
 		item.Source = v.Source
 		item.PublishDate = utils.TimeRemoveHms2(v.PublishDate)
+		if v.IsSummary == 1 {
+			item.BodyHighlight = v.Body
+			titleHighlight[v.SourceId] = v.Title
+			bodyHighlight[v.SourceId] = v.Body
+			//fmt.Println(v.Title)
+		} else {
+			item.BodyHighlight = make([]string, 0)
+		}
 		mapItems[fmt.Sprint(v.Source, v.SourceId)] = item
 	}
 
@@ -831,6 +841,14 @@ func GetResourceDataEsList(list []*SearchComprehensiveItem, user *models.WxUserI
 		}
 		for _, v := range articleList {
 			v.Body = ""
+			if titleHighlight[v.ArticleId] != "" {
+				v.Title = titleHighlight[v.ArticleId]
+			}
+			if len(bodyHighlight[v.ArticleId]) > 0 {
+				v.Abstract = ""
+				v.Annotation = ""
+				v.BodyHighlight = bodyHighlight[v.ArticleId]
+			}
 			mapItems[fmt.Sprint("article", v.ArticleId)].Article = v
 		}
 	}