Browse Source

资源包,报告搜索

xingzai 2 years ago
parent
commit
7970473fba
3 changed files with 75 additions and 63 deletions
  1. 5 60
      controllers/report.go
  2. 3 3
      models/report.go
  3. 67 0
      services/report.go

+ 5 - 60
controllers/report.go

@@ -986,6 +986,9 @@ func (this *MobileReportController) SearchReportAndResource() {
 		br.Msg = "获取总数失败,Err:" + err.Error()
 		return
 	}
+	if searchType == 1 {
+		pageSize = utils.PageSize5
+	}
 	ListHzReport, err := services.GetReoprtSearchListHz(conditionSql, user.UserId, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -995,76 +998,18 @@ func (this *MobileReportController) SearchReportAndResource() {
 	if len(ListHzReport) == 0 {
 		ListHzReport = make([]*models.ArticleCollectionResp, 0)
 	}
-
-	fllowList, err := models.GetUserFllowIndustrialList(uid)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,GetUserFllowIndustrialList Err:" + err.Error()
-		return
-	}
-	fllowMap := make(map[int]int)
-	if len(fllowList) > 0 {
-		for _, v := range fllowList {
-			fllowMap[v.IndustrialManagementId] = v.IndustrialManagementId
-		}
-	}
-
 	var conditionOr string
 	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
-	var pageSizeHzResource int
-	if searchType == 1 {
-		pageSizeHzResource = 5
-	} else {
-		pageSizeHzResource = 100
-	}
-	listHzResource, err := models.GetSearchResourceListHz(condition, 0, pageSizeHzResource)
+	listHzResource, err := services.GetSearchResourceListHz(condition, uid)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
 		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
-
-	//合并产业关联的标的
-	listSubjcet, err := models.GetThemeHeatSubjectList("")
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
-		return
-	}
-	industrialIdArr := make([]int, 0)
-	for k, v := range listHzResource {
-		listHzResource[k].Source = 1
-		if fllowMap[v.IndustrialManagementId] > 0 {
-			listHzResource[k].IsFollw = true
-		}
-		industrialIdArr = append(industrialIdArr, v.IndustrialManagementId)
-	}
-
-	if len(industrialIdArr) > 0 {
-		//合并产业关联的标的
-		listSubjcet, err = models.GetIndustrialSubjectAllByIndustrialId(industrialIdArr)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
-			return
-		}
-		mapIndustrial := make(map[string]int)
-		for _, v := range listSubjcet {
-			for k2, v2 := range listHzResource {
-				if v2.IndustrialManagementId == v.IndustrialManagementId && mapIndustrial[fmt.Sprint(v2.IndustrialManagementId, "Hz", v.SubjectName)] == 0 {
-					listHzResource[k2].IndustrialSubjectList = append(listHzResource[k2].IndustrialSubjectList, v)
-					mapIndustrial[fmt.Sprint(v2.IndustrialManagementId, "Hz", v.SubjectName)] = v2.IndustrialManagementId
-				}
-			}
-		}
-	}
 	resp := new(models.SearchReportAndResourceResp)
 	if len(listHzResource) == 0 {
-		listHzResource = make([]*models.IndustrialManagementHotResp, 0)
+		listHzResource = make([]*models.IndustrialManagement, 0)
 	}
 	if keyWord != "" {
 		go services.AddUserSearchLog(user, keyWord, 5)

+ 3 - 3
models/report.go

@@ -257,7 +257,7 @@ type IndustrialManagementHotResp struct {
 
 //搜索资源包 start
 type SearchReportAndResourceResp struct {
-	ListHzResource []*IndustrialManagementHotResp `description:"弘则资源包"`
-	ListHzReport   []*ArticleCollectionResp       `description:"弘则报告"`
-	Paging         *paging.PagingItem             `description:"弘则报告分页"`
+	ListHzResource []*IndustrialManagement  `description:"弘则资源包"`
+	ListHzReport   []*ArticleCollectionResp `description:"弘则报告"`
+	Paging         *paging.PagingItem       `description:"弘则报告分页"`
 }

+ 67 - 0
services/report.go

@@ -1,6 +1,7 @@
 package services
 
 import (
+	"fmt"
 	"hongze/hongze_clpt/models"
 	"hongze/hongze_clpt/utils"
 	"strconv"
@@ -80,3 +81,69 @@ func GetReoprtSearchListHz(condition string, userId, startSize, pageSize int) (i
 	items = listHz
 	return
 }
+
+func GetSearchResourceListHz(condition string, userId int) (items []*models.IndustrialManagement, err error) {
+	fllowList, err := models.GetUserFllowIndustrialList(userId)
+	if err != nil {
+		return
+	}
+	fllowMap := make(map[int]int)
+	if len(fllowList) > 0 {
+		for _, v := range fllowList {
+			fllowMap[v.IndustrialManagementId] = v.IndustrialManagementId
+		}
+	}
+	listHz, err := models.GetSearchResourceList(condition)
+	if err != nil {
+		return
+	}
+	//合并产业关联的标的
+	listSubjcet, err := models.GetThemeHeatSubjectList("")
+	if err != nil {
+		return
+	}
+	industrialIdArr := make([]int, 0)
+	for k, v := range listHz {
+		listHz[k].Source = 1
+		if fllowMap[v.IndustrialManagementId] > 0 {
+			listHz[k].IsFollow = true
+		}
+		industrialIdArr = append(industrialIdArr, v.IndustrialManagementId)
+	}
+
+	if len(industrialIdArr) > 0 {
+		//合并产业关联的标的
+		listSubjcet, err = models.GetIndustrialSubjectAllByIndustrialId(industrialIdArr)
+		if err != nil {
+			return
+		}
+		mapIndustrial := make(map[string]int)
+		for _, v := range listSubjcet {
+			for k2, v2 := range listHz {
+				if v2.IndustrialManagementId == v.IndustrialManagementId && mapIndustrial[fmt.Sprint(v2.IndustrialManagementId, "Hz", v.SubjectName)] == 0 {
+					listHz[k2].IndustrialSubjectList = append(listHz[k2].IndustrialSubjectList, v)
+					mapIndustrial[fmt.Sprint(v2.IndustrialManagementId, "Hz", v.SubjectName)] = v2.IndustrialManagementId
+				}
+			}
+		}
+	}
+
+	mapUPdateTime := make(map[int]string)
+	articleIdArr := make([]int, 0)
+	//获取这些产业下最新更新的文章
+
+	fmt.Println(industrialIdArr)
+	listUpdateTime, err := models.GetNewArticleDetailByIndustrialIds(industrialIdArr)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	for _, v := range listUpdateTime {
+		mapUPdateTime[v.IndustrialManagementId] = v.PublishDate
+		articleIdArr = append(articleIdArr, v.ArticleId)
+	}
+	for k, v := range listHz {
+		listHz[k].UpdateTime = utils.TimeRemoveHms(mapUPdateTime[v.IndustrialManagementId])
+	}
+	items = listHz
+	return
+}