|
@@ -797,6 +797,7 @@ func (this *ReportController) CategoryFllow() {
|
|
|
// @Param PageSize query int true "每页数据条数"
|
|
|
// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
// @Param KeyWord query string true "搜索关键词"
|
|
|
+// @Param ArticleType query int true "文章类型,1弘则报告、2研选 "
|
|
|
// @Success 200 {object} models.ReoprtSearchResp
|
|
|
// @router /searchReport [get]
|
|
|
func (this *MobileReportController) SearchReport() {
|
|
@@ -813,10 +814,11 @@ func (this *MobileReportController) SearchReport() {
|
|
|
}
|
|
|
pageSize, _ := this.GetInt("PageSize")
|
|
|
currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ articleType, _ := this.GetInt("ArticleType", 1)
|
|
|
keyWord := this.GetString("KeyWord")
|
|
|
var condition string
|
|
|
- var conditionSql string
|
|
|
- //var sqlGroup string
|
|
|
+ var pars []interface{}
|
|
|
+ //var conditionSql string
|
|
|
var total int
|
|
|
var startSize int
|
|
|
if pageSize <= 0 {
|
|
@@ -826,105 +828,164 @@ func (this *MobileReportController) SearchReport() {
|
|
|
currentIndex = 1
|
|
|
}
|
|
|
startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
- page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+
|
|
|
resp := new(models.ReoprtSearchResp)
|
|
|
//匹配报告标题、
|
|
|
- condition = ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%') AND a.publish_status = 1 `
|
|
|
-
|
|
|
- conditionSql = ` AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + condition + ` OR ( article_type = 'lyjh' ` + condition + ` ) `
|
|
|
- total, err := models.GetReoprtSearchCount(conditionSql)
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.Msg = "获取总数失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- //listHz, err := models.GetReoprtSearchList(` AND a.article_id < `+strconv.Itoa(utils.SummaryArticleId)+condition+` OR ( article_type = 'lyjh' `+condition+` ) `+sqlGroup, user.UserId, startSize, pageSize)
|
|
|
- listHz, err := models.GetReoprtSearchList(conditionSql, user.UserId, startSize, pageSize)
|
|
|
- if err != nil {
|
|
|
+ if articleTypeIds == "" {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
return
|
|
|
}
|
|
|
- for k, _ := range listHz {
|
|
|
- listHz[k].Source = 1
|
|
|
- }
|
|
|
- var articleIds string
|
|
|
- for _, v := range listHz {
|
|
|
- articleIds += strconv.Itoa(v.ArticleId) + ","
|
|
|
+ //condition = `AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 `
|
|
|
+ if articleType == 1 {
|
|
|
+ condition = ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 AND a.article_type_id NOT IN (` + articleTypeIds + `) `
|
|
|
+ total, err = models.GetReoprtSearchCountHz(condition)
|
|
|
+ } else {
|
|
|
+ condition = ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ total, err = models.GetReoprtSearchCountYx(condition)
|
|
|
}
|
|
|
- articleIds = strings.TrimRight(articleIds, ",")
|
|
|
- silcearticleIds := strings.Split(articleIds, ",")
|
|
|
- //获取文章关联的产业
|
|
|
- var pars []interface{}
|
|
|
- pars = make([]interface{}, 0)
|
|
|
- articleIdList := make([]string, 0)
|
|
|
- for _, v := range silcearticleIds {
|
|
|
- articleIdList = append(articleIdList, v)
|
|
|
- }
|
|
|
- condition = ` AND mg.article_id IN ( ` + utils.GetOrmInReplace(len(silcearticleIds)) + ` ) `
|
|
|
- pars = append(pars, articleIdList)
|
|
|
- industrialList, err := models.GetIndustrialListByarticleId(pars, condition)
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,GetSubjectList Err:" + err.Error()
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.Msg = "获取总数失败,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)
|
|
|
- }
|
|
|
+ var list []*models.ArticleListResp
|
|
|
+ //list := new([]models.ArticleResearchResp)
|
|
|
+ if articleType == 1 {
|
|
|
+ list, err = models.GetArticleResearchListHz(condition, pars, startSize, pageSize, user.UserId)
|
|
|
+ } else {
|
|
|
+ list, err = models.GetArticleResearchList(condition, pars, startSize, pageSize, user.UserId)
|
|
|
}
|
|
|
-
|
|
|
- detailCategoryUrl, err := models.GetConfigByCode("category_map_img_url")
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- categoryUrlList := strings.Split(detailCategoryUrl.ConfigValue, "{|}")
|
|
|
- mapCategoryUrl := make(map[string]string)
|
|
|
- var categoryId string
|
|
|
- var imgUrlChart string
|
|
|
- for _, v := range categoryUrlList {
|
|
|
- vslice := strings.Split(v, "_")
|
|
|
- categoryId = vslice[0]
|
|
|
- imgUrlChart = vslice[len(vslice)-1]
|
|
|
- mapCategoryUrl[categoryId] = imgUrlChart
|
|
|
+ //return
|
|
|
+ list, err = services.HandleArticleCategoryImg(list)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "HandleArticleCategoryImg,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
- for k, v := range listHz {
|
|
|
- if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
- listHz[k].List = industrialMap[v.ArticleId]
|
|
|
- } else {
|
|
|
- listHz[k].List = make([]*models.IndustrialManagementResp, 0)
|
|
|
+ //处理对应的文章类型标签按钮
|
|
|
+ nameMap, styleMap, err := services.GetArticleTypeMap()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetArticleTypeMap Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ item := models.ArticleResearchResp{
|
|
|
+ ArticleId: v.ArticleId,
|
|
|
+ ArticleTypeId: v.ArticleTypeId,
|
|
|
+ Title: v.Title,
|
|
|
+ PublishDate: v.PublishDate,
|
|
|
+ DepartmentId: v.DepartmentId,
|
|
|
+ NickName: v.NickName,
|
|
|
+ IsCollect: v.IsCollect,
|
|
|
+ Pv: v.Pv,
|
|
|
+ CollectNum: v.CollectNum,
|
|
|
+ Abstract: v.Abstract,
|
|
|
+ Annotation: v.Annotation,
|
|
|
+ ImgUrlPc: v.ImgUrlPc,
|
|
|
+ ArticleTypeName: nameMap[v.ArticleTypeId],
|
|
|
+ ButtonStyle: styleMap[v.ArticleTypeId],
|
|
|
+ List: v.List,
|
|
|
}
|
|
|
- listHz[k].Body = ""
|
|
|
- listHz[k].Abstract, _ = services.GetReportContentTextSub(v.Abstract)
|
|
|
- listHz[k].Annotation, _ = services.GetReportContentTextSub(v.Annotation)
|
|
|
- //行业比较研究、资金流向,显示报告的摘要
|
|
|
- if listHz[k].CategoryName == "行业比较研究" || listHz[k].CategoryName == "资金流向" {
|
|
|
- listHz[k].Annotation = listHz[k].Abstract
|
|
|
+ if articleType == 1 {
|
|
|
+ resp.ListHz = append(resp.ListHz, &item)
|
|
|
+ } else {
|
|
|
+ resp.ListYx = append(resp.ListYx, &item)
|
|
|
}
|
|
|
- listHz[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
|
|
|
+
|
|
|
}
|
|
|
+ //for k, _ := range listHz {
|
|
|
+ // listHz[k].Source = 1
|
|
|
+ //}
|
|
|
+ //var articleIds string
|
|
|
+ //for _, v := range listHz {
|
|
|
+ // articleIds += strconv.Itoa(v.ArticleId) + ","
|
|
|
+ //}
|
|
|
+ //articleIds = strings.TrimRight(articleIds, ",")
|
|
|
+ //silcearticleIds := strings.Split(articleIds, ",")
|
|
|
+ ////获取文章关联的产业
|
|
|
+ //var pars []interface{}
|
|
|
+ //pars = make([]interface{}, 0)
|
|
|
+ //articleIdList := make([]string, 0)
|
|
|
+ //for _, v := range silcearticleIds {
|
|
|
+ // articleIdList = append(articleIdList, v)
|
|
|
+ //}
|
|
|
+ //condition = ` AND mg.article_id IN ( ` + utils.GetOrmInReplace(len(silcearticleIds)) + ` ) `
|
|
|
+ //pars = append(pars, articleIdList)
|
|
|
+ //industrialList, err := models.GetIndustrialListByarticleId(pars, condition)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "获取失败"
|
|
|
+ // br.ErrMsg = "获取失败,GetSubjectList 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)
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //detailCategoryUrl, err := models.GetConfigByCode("category_map_img_url")
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "获取数据失败"
|
|
|
+ // br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //categoryUrlList := strings.Split(detailCategoryUrl.ConfigValue, "{|}")
|
|
|
+ //mapCategoryUrl := make(map[string]string)
|
|
|
+ //var categoryId string
|
|
|
+ //var imgUrlChart string
|
|
|
+ //for _, v := range categoryUrlList {
|
|
|
+ // vslice := strings.Split(v, "_")
|
|
|
+ // categoryId = vslice[0]
|
|
|
+ // imgUrlChart = vslice[len(vslice)-1]
|
|
|
+ // mapCategoryUrl[categoryId] = imgUrlChart
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //for k, v := range listHz {
|
|
|
+ // if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
+ // listHz[k].List = industrialMap[v.ArticleId]
|
|
|
+ // } else {
|
|
|
+ // listHz[k].List = make([]*models.IndustrialManagementResp, 0)
|
|
|
+ // }
|
|
|
+ // listHz[k].Body = ""
|
|
|
+ // listHz[k].Abstract, _ = services.GetReportContentTextSub(v.Abstract)
|
|
|
+ // listHz[k].Annotation, _ = services.GetReportContentTextSub(v.Annotation)
|
|
|
+ // //行业比较研究、资金流向,显示报告的摘要
|
|
|
+ // if listHz[k].CategoryName == "行业比较研究" || listHz[k].CategoryName == "资金流向" {
|
|
|
+ // listHz[k].Annotation = listHz[k].Abstract
|
|
|
+ // }
|
|
|
+ // listHz[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
|
|
|
+ //}
|
|
|
|
|
|
if keyWord != "" {
|
|
|
go services.AddUserSearchLog(user, keyWord, 5)
|
|
|
}
|
|
|
- if len(listHz) == 0 {
|
|
|
- listHz = make([]*models.ArticleCollectionResp, 0)
|
|
|
+ if len(resp.ListHz) == 0 {
|
|
|
+ resp.ListHz = make([]*models.ArticleResearchResp, 0)
|
|
|
}
|
|
|
-
|
|
|
- page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
-
|
|
|
+ if len(resp.ListYx) == 0 {
|
|
|
+ resp.ListYx = make([]*models.ArticleResearchResp, 0)
|
|
|
+ }
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp.Paging = page
|
|
|
- resp.ListHz = listHz
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
@@ -963,69 +1024,47 @@ func (this *MobileReportController) SearchResource() {
|
|
|
}
|
|
|
keyWord := this.GetString("KeyWord")
|
|
|
var condition string
|
|
|
- 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
|
|
|
|
|
|
- listHz, err := models.GetSearchResourceList(condition)
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- //合并产业关联的标的
|
|
|
- listSubjcet, err := models.GetThemeHeatSubjectList("")
|
|
|
- if err != nil {
|
|
|
+ if articleTypeIds == "" {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
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 {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
|
|
|
- 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
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ condition = ` AND a.publish_status = 1 AND a.article_type_id NOT IN (` + articleTypeIds + `) AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%' ) `
|
|
|
+ listHz, err := models.GetSearchResourceList(condition)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
- mapUPdateTime := make(map[int]string)
|
|
|
- articleIdArr := make([]int, 0)
|
|
|
- //获取这些产业下最新更新的文章
|
|
|
- fmt.Println(industrialIdArr)
|
|
|
- listUpdateTime, err := models.GetNewArticleDetailByIndustrialIds(industrialIdArr)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ condition = ` AND a.publish_status = 1 AND a.article_type_id IN (` + articleTypeIds + `) AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%' ) `
|
|
|
+ listYx, err := models.GetSearchResourceList(condition)
|
|
|
+ if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取信息失败 GetNewArticleDetailByIndustrialIds ,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- for _, v := range listUpdateTime {
|
|
|
- mapUPdateTime[v.IndustrialManagementId] = v.PublishDate
|
|
|
- articleIdArr = append(articleIdArr, v.ArticleId)
|
|
|
+
|
|
|
+ listYx, err = services.HandleIndustryList(listYx, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- for k, v := range listHz {
|
|
|
- listHz[k].UpdateTime = utils.TimeRemoveHms(mapUPdateTime[v.IndustrialManagementId])
|
|
|
+ listHz, err = services.HandleIndustryList(listHz, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
if keyWord != "" {
|
|
|
go services.AddUserSearchLog(user, keyWord, 4)
|
|
|
}
|
|
@@ -1033,7 +1072,11 @@ func (this *MobileReportController) SearchResource() {
|
|
|
if len(listHz) == 0 {
|
|
|
listHz = make([]*models.IndustrialManagement, 0)
|
|
|
}
|
|
|
+ if len(listYx) == 0 {
|
|
|
+ listYx = make([]*models.IndustrialManagement, 0)
|
|
|
+ }
|
|
|
resp.ListHz = listHz
|
|
|
+ resp.ListYx = listYx
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|