Pārlūkot izejas kodu

Merge branch 'cygx_9.1' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 2 gadi atpakaļ
vecāks
revīzija
6df8cb7d1c
2 mainītis faili ar 104 papildinājumiem un 16 dzēšanām
  1. 103 15
      controllers/report.go
  2. 1 1
      services/micro_roadshow.go

+ 103 - 15
controllers/report.go

@@ -2741,29 +2741,121 @@ func (this *ReportController) SearchReportAndResource() {
 	ListYxReport, err := models.GetArticleCollectionList(` AND a.article_type_id IN (`+utils.YAN_XUAN_ARTICLE_TYPE_IDS+`) `+condition+sqlGroup, user.UserId)
 	if err != nil {
 		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
+		br.ErrMsg = "获取研选文章列表失败,Err:" + err.Error()
+		return
+	}
+
+	ListHzReport, err := models.GetReoprtSearchList(` AND a.article_type_id NOT IN (`+utils.YAN_XUAN_ARTICLE_TYPE_IDS+`) `+condition+sqlGroup, user.UserId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取弘则报告文章列表失败,Err:" + err.Error()
 		return
 	}
+
+	keyWordArr, err := services.GetIndustryMapNameSliceV3(keyWord)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取分词失败,GetIndustryMapNameSliceV3 Err: " + err.Error()
+		return
+	}
+	keyWordArr = services.RemoveDuplicatesAndEmpty(keyWordArr)
+	var keyWordIk string
+	if len(keyWordArr) > 1 {
+		keyWordIk = services.KeyWordArrSqlRegexp(keyWordArr)
+		var conditionIk string
+		var sqlGroupIk string
+		conditionIk = `AND ( a.title REGEXP '` + keyWordIk + `' OR  a.annotation REGEXP '` + keyWordIk + `' OR  a.abstract REGEXP '` + keyWordIk + `') AND a.publish_status = 1 `
+		sqlGroupIk = ` GROUP BY  a.article_id  ORDER BY a.publish_date DESC  `
+		if pageSize > 0 {
+			sqlGroupIk += ` LIMIT 5 `
+		} else {
+			sqlGroupIk += ` LIMIT 20 `
+		}
+		//研选的联想词列表
+		ListYxReportIk, err := models.GetArticleCollectionList(` AND a.article_type_id IN (`+utils.YAN_XUAN_ARTICLE_TYPE_IDS+`) `+conditionIk+sqlGroupIk, user.UserId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取研选IK文章列表失败,Err:" + err.Error()
+			return
+		}
+		if len(ListYxReportIk) > 0 {
+			for _, v := range ListYxReportIk {
+				ListYxReport = append(ListYxReport, v)
+			}
+		}
+		//弘则的联想词列表
+		ListHzReportIk, err := models.GetReoprtSearchList(`  AND a.article_type_id NOT IN (`+utils.YAN_XUAN_ARTICLE_TYPE_IDS+`) `+conditionIk+sqlGroupIk, user.UserId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取研选IK文章列表失败,Err:" + err.Error()
+			return
+		}
+		if len(ListHzReportIk) > 0 {
+			for _, v := range ListHzReportIk {
+				ListHzReport = append(ListHzReport, v)
+			}
+		}
+	}
+	for k, v := range ListHzReport {
+		ListHzReport[k].Source = 1
+		if v.MyCollectNum > 0 {
+			ListHzReport[k].IsCollect = true
+		}
+	}
 	for k, v := range ListYxReport {
 		ListYxReport[k].Source = 2
 		if v.MyCollectNum > 0 {
 			ListYxReport[k].IsCollect = true
 		}
 	}
-	//研选下面的报告又区分出了非研选,先根据 YAN_XUAN_ARTICLE_TYPE_IDS 这么处理吧
-	//ListHzReport, err := models.GetReoprtSearchList(` AND a.article_id < 1000000 `+condition+` OR ( article_type = 'lyjh' `+condition+` ) OR ( a.sub_category_name = '专项调研' `+condition+` )  `+sqlGroup, user.UserId)
-	ListHzReport, err := models.GetReoprtSearchList(` AND a.article_type_id NOT IN (`+utils.YAN_XUAN_ARTICLE_TYPE_IDS+`) `+condition+sqlGroup, user.UserId)
+
+	var articleIds string
+	for _, v := range ListHzReport {
+		articleIds += strconv.Itoa(v.ArticleId) + ","
+	}
+	for _, v := range ListYxReport {
+		articleIds += strconv.Itoa(v.ArticleId) + ","
+	}
+	articleIds = strings.TrimRight(articleIds, ",")
+	silcearticleIds := strings.Split(articleIds, ",")
+	var parsindustrial []interface{}
+	parsindustrial = make([]interface{}, 0)
+	articleIdList := make([]string, 0)
+	for _, v := range silcearticleIds {
+		articleIdList = append(articleIdList, v)
+	}
+	conditionindustrial := ` AND mg.article_id IN (  ` + utils.GetOrmInReplace(len(silcearticleIds)) + ` )  `
+	parsindustrial = append(parsindustrial, articleIdList)
+	industrialList, err := models.GetIndustrialListByarticleId(parsindustrial, conditionindustrial)
 	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
 		return
 	}
+	industrialMap := make(map[int][]*models.IndustrialManagementResp)
+	if len(industrialList) > 0 {
+		for _, v := range industrialList {
+			item := new(models.IndustrialManagementResp)
+			//item.ArticleId = v.ArticleId
+			item.IndustrialManagementId = v.IndustrialManagementId
+			item.IndustryName = v.IndustryName
+			item.ChartPermissionId = v.ChartPermissionId
+			industrialMap[v.ArticleId] = append(industrialMap[v.ArticleId], item)
+		}
+	}
 	for k, v := range ListHzReport {
-		ListHzReport[k].Source = 1
-		if v.MyCollectNum > 0 {
-			ListHzReport[k].IsCollect = true
+		if len(industrialMap[v.ArticleId]) > 0 {
+			ListHzReport[k].List = industrialMap[v.ArticleId]
+		} else {
+			ListHzReport[k].List = make([]*models.IndustrialManagementResp, 0)
+		}
+	}
+	for k, v := range ListYxReport {
+		if len(industrialMap[v.ArticleId]) > 0 {
+			ListYxReport[k].List = industrialMap[v.ArticleId]
+		} else {
+			ListYxReport[k].List = make([]*models.IndustrialManagementResp, 0)
 		}
 	}
+	//获取文章关联的产业
 
 	if len(ListYxReport) == 0 {
 		ListYxReport = make([]*models.ArticleCollectionResp, 0)
@@ -2785,8 +2877,6 @@ func (this *ReportController) SearchReportAndResource() {
 		}
 	}
 
-	//var conditionOr string
-	//conditionOr += ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + `  AND publish_status = 1 ) `
 	condition = `  AND a.publish_status = 1 AND a.article_type_id NOT IN (` + utils.YAN_XUAN_ARTICLE_TYPE_IDS + `)  AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%'  )  `
 
 	listHzResource, err := models.GetSearchResourceList(user.UserId, condition, 0, pageSize)
@@ -2796,9 +2886,8 @@ func (this *ReportController) SearchReportAndResource() {
 		return
 	}
 
-	//conditionOr = ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + `  AND publish_status = 1 ) `
-	//condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
 	condition = `  AND a.publish_status = 1 AND a.article_type_id IN (` + utils.YAN_XUAN_ARTICLE_TYPE_IDS + `)  AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%'  )  `
+
 	listYxResource, err := models.GetSearchResourceList(user.UserId, condition, 0, pageSize)
 	if err != nil {
 		br.Msg = "获取信息失败"
@@ -2911,7 +3000,6 @@ func (this *ReportController) SearchReportAndResource() {
 			listYxResource[k].IsFollw = true
 		}
 		industrialIdArr = append(industrialIdArr, v.IndustrialManagementId)
-
 	}
 
 	if len(industrialIdArr) > 0 {
@@ -3039,7 +3127,7 @@ func (this *ReportController) SearchReportAndResource() {
 		keyWordItem.PageType = "ReortSearch"
 		keyWordItem.CreateTime = time.Now()
 		go models.AddUserSearchKeyWord(keyWordItem)
-		go services.AddUserSearchLog(user, keyWord, 5)
+		//go services.AddUserSearchLog(user, keyWord, 5)
 	}
 
 	resp.ListHzResource = listHzResource

+ 1 - 1
services/micro_roadshow.go

@@ -633,7 +633,7 @@ func GetindustryVideo(user *models.WxUserItem, industrialManagementId int) (indu
 	return
 }
 
-//用户微路演视频回放操作操作行为,模板消息推送
+// 用户微路演视频回放操作操作行为,模板消息推送
 func MicroRoadshowVideoUserRmind(user *models.WxUserItem, videoId int) (err error) {
 	defer func() {
 		if err != nil {