|
@@ -1,15 +1,17 @@
|
|
|
package controllers
|
|
|
|
|
|
import (
|
|
|
- "errors"
|
|
|
+ "encoding/json"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
+ "hongze/hongze_cygx/services"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-//研选
|
|
|
+// 研选
|
|
|
type ResearchController struct {
|
|
|
BaseAuthController
|
|
|
}
|
|
@@ -31,12 +33,21 @@ func (this *ResearchController) NewList() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
- //chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- //if chartPermissionId < 1 {
|
|
|
- // br.Msg = "请输入分类ID"
|
|
|
- // return
|
|
|
- //}
|
|
|
- list, err := models.GetIndustrialManagementNewList("")
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds == "" {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var condition string
|
|
|
+ var conditionOrder string
|
|
|
+ condition = ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ list, err := models.GetIndustrialManagementNewList(condition)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
@@ -44,8 +55,8 @@ func (this *ResearchController) NewList() {
|
|
|
}
|
|
|
mapHot := make(map[string]int)
|
|
|
|
|
|
- condition := ` ORDER BY sum_num DESC `
|
|
|
- listHot, err := models.GetThemeHeatList(user.UserId, condition, 0, 3)
|
|
|
+ conditionOrder = ` ORDER BY sum_num DESC `
|
|
|
+ listHot, err := models.GetThemeHeatList(user.UserId, condition, conditionOrder, 0, 3)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
@@ -84,17 +95,33 @@ func (this *ResearchController) CollectionList() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
- //chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- //if chartPermissionId < 1 {
|
|
|
- // br.Msg = "请输入分类ID"
|
|
|
- // return
|
|
|
- //}
|
|
|
+
|
|
|
+ pageSize, _ := this.GetInt("PageSize", 15)
|
|
|
var condition string
|
|
|
- condition = ` AND a.article_type_id > 0 AND publish_status = 1 GROUP BY a.article_id ORDER BY collect_num_order DESC, publish_date DESC LIMIT 15 `
|
|
|
- list, err := models.GetArticleCollectionList(condition, user.UserId)
|
|
|
+ var pars []interface{}
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds != "" {
|
|
|
+ condition = ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ } else {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 根据关注时间一个月前至昨日的增量数据排序
|
|
|
+ nowTime := time.Now().Local()
|
|
|
+ startTime := nowTime.AddDate(0, -1, 0)
|
|
|
+ endTime := nowTime.AddDate(0, 0, -1)
|
|
|
+ condition += ` AND ac.create_time BETWEEN ? AND ? `
|
|
|
+ pars = append(pars, startTime, endTime)
|
|
|
+ list, err := models.GetReportCollectionBillboardListYx(pageSize, pars, condition)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取报告阅读增量排行榜失败, Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
for k, v := range list {
|
|
@@ -102,6 +129,28 @@ func (this *ResearchController) CollectionList() {
|
|
|
list[k].IsCollect = true
|
|
|
}
|
|
|
}
|
|
|
+ var articleIds []int
|
|
|
+ for k, v := range list {
|
|
|
+ if v.MyCollectNum > 0 {
|
|
|
+ list[k].IsCollect = true
|
|
|
+ }
|
|
|
+ articleIds = append(articleIds, v.ArticleId)
|
|
|
+ }
|
|
|
+ //处理关联的产业
|
|
|
+ industrialMap, err := services.GetArticleIndustrialByArticleId(articleIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取关联的产业信息失败,GetArticleIndustrialByArticleId Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for k, v := range list {
|
|
|
+ if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
+ list[k].List = industrialMap[v.ArticleId]
|
|
|
+ } else {
|
|
|
+ list[k].List = make([]*models.IndustrialManagementResp, 0)
|
|
|
+ }
|
|
|
+ list[k].PublishDate = utils.StrTimeToTime(v.PublishDate).Format(utils.FormatDate) //时间字符串格式转时间格式
|
|
|
+ }
|
|
|
resp := new(models.ArticleCollectionLIstResp)
|
|
|
resp.List = list
|
|
|
br.Ret = 200
|
|
@@ -130,11 +179,6 @@ func (this *ResearchController) HotList() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
- //chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- //if chartPermissionId < 1 {
|
|
|
- // br.Msg = "请输入分类ID"
|
|
|
- // return
|
|
|
- //}
|
|
|
themeType, _ := this.GetInt("ThemeType")
|
|
|
pageSize, _ := this.GetInt("PageSize")
|
|
|
currentIndex, _ := this.GetInt("CurrentIndex")
|
|
@@ -147,70 +191,61 @@ func (this *ResearchController) HotList() {
|
|
|
}
|
|
|
startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
var condition string
|
|
|
- if themeType != 2 {
|
|
|
- condition = `ORDER BY sum_num DESC `
|
|
|
+ var conditionOrder string
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds == "" {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ condition = ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ if themeType == 2 {
|
|
|
+ conditionOrder = `ORDER BY publish_date DESC `
|
|
|
} else {
|
|
|
- condition = `ORDER BY publish_date DESC `
|
|
|
+ conditionOrder = `ORDER BY sum_num DESC `
|
|
|
}
|
|
|
|
|
|
- total, err := models.GetThemeHeatListCount("")
|
|
|
+ total, err := models.GetThemeHeatListCount(condition)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- list, err := models.GetThemeHeatList(user.UserId, condition, startSize, pageSize)
|
|
|
+ list, err := models.GetThemeHeatList(user.UserId, condition, conditionOrder, startSize, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- //newMap := make(map[int]string)
|
|
|
- //listNew, err := models.GetIndustrialManagementNewList("")
|
|
|
- //if err != nil {
|
|
|
- // br.Msg = "获取信息失败"
|
|
|
- // br.ErrMsg = "获取产业最新信息失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- //}
|
|
|
- //for _, v := range listNew {
|
|
|
- // newMap[v.IndustrialManagementId] = v.IndustryName
|
|
|
- //}
|
|
|
- condition = ` AND a.article_type_id > 0 `
|
|
|
listSubjcet, err := models.GetThemeHeatSubjectList(condition)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- mapHot := make(map[string]int)
|
|
|
-
|
|
|
- condition = ` ORDER BY sum_num DESC `
|
|
|
- listHot, err := models.GetThemeHeatList(user.UserId, condition, 0, 3)
|
|
|
+ mapHot := make(map[int]bool)
|
|
|
+ mapNew, err := services.GetYanXuanIndustrialManagementIdNewMap(articleTypeIds)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "GetYanXuanIndustrialManagementIdNewMap,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- for _, v := range listHot {
|
|
|
- mapHot[v.IndustryName] = v.IndustrialManagementId
|
|
|
+ //if themeType == 2 {
|
|
|
+ mapHot, err = services.GetYanXuanIndustrialManagementIdHotMap(articleTypeIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanIndustrialManagementIdNewMap,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- nowTime := time.Now().Local()
|
|
|
- threeMonBefore := nowTime.AddDate(0, -3, 0)
|
|
|
+ //}
|
|
|
for k, v := range list {
|
|
|
- //if newMap[v.IndustrialManagementId] != "" {
|
|
|
- // list[k].IsNew = true
|
|
|
- //}
|
|
|
- // 关联报告发布时间均在3个月内则标记New
|
|
|
- if v.MinReportTime != "" {
|
|
|
- t, e := time.Parse(utils.FormatDateTime, v.MinReportTime)
|
|
|
- if e != nil {
|
|
|
- err = errors.New("报告最早发布时间有误,GetindustryVideo " + e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- if t.After(threeMonBefore) {
|
|
|
- list[k].IsNew = true
|
|
|
- }
|
|
|
- }
|
|
|
+ list[k].IsNew = mapNew[v.IndustrialManagementId]
|
|
|
+ list[k].IsHot = mapHot[v.IndustrialManagementId]
|
|
|
if v.FllowNum > 0 {
|
|
|
list[k].IsFollw = true
|
|
|
}
|
|
@@ -219,9 +254,6 @@ func (this *ResearchController) HotList() {
|
|
|
list[k].IndustrialSubjectList = append(list[k].IndustrialSubjectList, v2)
|
|
|
}
|
|
|
}
|
|
|
- if mapHot[v.IndustryName] > 0 {
|
|
|
- list[k].IsHot = true
|
|
|
- }
|
|
|
}
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp := new(models.IndustrialManagementHotListResp)
|
|
@@ -236,6 +268,9 @@ func (this *ResearchController) HotList() {
|
|
|
// @Title KOL榜列表
|
|
|
// @Description KOL榜列表接口
|
|
|
// @Param ChartPermissionId query int true "分类ID"
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param ThemeType query int true "主题类型,1关注度、2更新时间 "
|
|
|
// @Success 200 {object} models.DepartmentListResp
|
|
|
// @router /kolList [get]
|
|
|
func (this *ResearchController) KolList() {
|
|
@@ -250,16 +285,62 @@ func (this *ResearchController) KolList() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
- //chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- //if chartPermissionId < 1 {
|
|
|
- // br.Msg = "请输入分类ID"
|
|
|
- // return
|
|
|
+ themeType, _ := this.GetInt("ThemeType")
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize15
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds == "" {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var condition string
|
|
|
+ var conditionOrder string
|
|
|
+ condition = ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+
|
|
|
+ total, err := models.GetDepartmentlistCount(condition)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if themeType == 2 {
|
|
|
+ conditionOrder = `ORDER BY publish_date DESC `
|
|
|
+ } else {
|
|
|
+ conditionOrder = `ORDER BY sum_num DESC `
|
|
|
+ }
|
|
|
+ mapHot := make(map[int]bool)
|
|
|
+ //if themeType == 2 {
|
|
|
+ conditionHot := `ORDER BY sum_num DESC `
|
|
|
+ listhot, err := models.GetDepartmentList(condition, conditionHot, user.UserId, 0, 3)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listhot {
|
|
|
+ mapHot[v.DepartmentId] = true
|
|
|
+ }
|
|
|
//}
|
|
|
|
|
|
- list, err := models.GetDepartmentList(user.UserId)
|
|
|
+ list, err := models.GetDepartmentList(condition, conditionOrder, user.UserId, startSize, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
listIndustrial, err := models.GetIndustrialDepartmentList()
|
|
@@ -281,8 +362,13 @@ func (this *ResearchController) KolList() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //if themeType == 2 {
|
|
|
+ v.IsHot = mapHot[v.DepartmentId]
|
|
|
+ //}
|
|
|
}
|
|
|
resp := new(models.DepartmentListResp)
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ resp.Paging = page
|
|
|
resp.List = list
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -318,11 +404,22 @@ func (this *ResearchController) ThemeDetail() {
|
|
|
source = 1
|
|
|
}
|
|
|
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds == "" {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
var condition string
|
|
|
if source == 1 {
|
|
|
- condition = ` AND a.category_name LIKE '%研选%' `
|
|
|
+ condition = ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
} else {
|
|
|
- condition = ` AND a.category_name NOT LIKE '%研选%' `
|
|
|
+ condition = ` AND a.article_type_id NOT IN (` + articleTypeIds + `) `
|
|
|
}
|
|
|
resp := new(models.GetThemeDetailResp)
|
|
|
list, err := models.GetThemeDetail(user.UserId, industrialManagementId, condition)
|
|
@@ -331,75 +428,52 @@ func (this *ResearchController) ThemeDetail() {
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- var itemsNull []*models.GetThemeAericleListResp
|
|
|
- subjectMap := make(map[string]string)
|
|
|
- articleMap := make(map[int]int)
|
|
|
+ var articleIds []int
|
|
|
for _, v := range list {
|
|
|
resp.IndustryName = v.IndustryName
|
|
|
resp.IndustrialManagementId = v.IndustrialManagementId
|
|
|
- itemSubJect := new(models.IndustrialSubject)
|
|
|
- itemSubJect.SubjectName = v.SubjectName
|
|
|
- itemSubJect.IndustrialSubjectId = v.IndustrialSubjectId
|
|
|
- if subjectMap[v.SubjectName] == "" && v.SubjectName != "" {
|
|
|
- resp.ListSubject = append(resp.ListSubject, itemSubJect)
|
|
|
- }
|
|
|
-
|
|
|
- subjectMap[v.SubjectName] = v.IndustryName
|
|
|
if v.FllowNum > 0 {
|
|
|
resp.IsFollw = true
|
|
|
}
|
|
|
-
|
|
|
- if v.SubjectName == "" {
|
|
|
- item := new(models.GetThemeAericleListResp)
|
|
|
- item.ArticleId = v.ArticleId
|
|
|
- item.Title = v.Title
|
|
|
- item.PublishDate = v.PublishDate
|
|
|
- item.SubjectName = v.SubjectName
|
|
|
- item.DepartmentId = v.DepartmentId
|
|
|
- item.NickName = v.NickName
|
|
|
- item.Pv = v.Pv
|
|
|
- item.CollectNum = v.CollectNum
|
|
|
- itemsNull = append(itemsNull, item)
|
|
|
-
|
|
|
- }
|
|
|
+ articleIds = append(articleIds, v.ArticleId)
|
|
|
}
|
|
|
-
|
|
|
- for _, v := range resp.ListSubject {
|
|
|
- subjetcGroup := new(models.GetThemeAericleListBuSubjectResp)
|
|
|
- for _, v2 := range list {
|
|
|
- if v2.IndustrialSubjectId == v.IndustrialSubjectId && articleMap[v2.ArticleId] == 0 {
|
|
|
- item := new(models.GetThemeAericleListResp)
|
|
|
- item.ArticleId = v2.ArticleId
|
|
|
- item.Title = v2.Title
|
|
|
- item.PublishDate = v2.PublishDate
|
|
|
- item.SubjectName = v2.SubjectName
|
|
|
- item.IndustrialSubjectId = v2.IndustrialSubjectId
|
|
|
- for _, v3 := range list {
|
|
|
- if v3.ArticleId == v2.ArticleId && v3.SubjectName != v2.SubjectName && v3.SubjectName != "" {
|
|
|
- item.SubjectName += "/" + v3.SubjectName
|
|
|
- }
|
|
|
- }
|
|
|
- item.DepartmentId = v2.DepartmentId
|
|
|
- item.NickName = v2.NickName
|
|
|
- item.Pv = v2.Pv
|
|
|
- item.CollectNum = v2.CollectNum
|
|
|
- item.MyCollectNum = v2.MyCollectNum
|
|
|
- if v2.MyCollectNum > 0 {
|
|
|
- item.IsCollect = true
|
|
|
- }
|
|
|
- resp.List = append(resp.List, item)
|
|
|
- articleMap[v2.ArticleId] = v2.ArticleId
|
|
|
- //subjetcGroup.List = append(subjetcGroup.List, item)
|
|
|
- }
|
|
|
- subjetcGroup.SubjectName = v.SubjectName
|
|
|
+ mapArticleSubjectName, subjectMap, err := services.GetArticleSubjectName(articleIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v2 := range list {
|
|
|
+ item := new(models.GetThemeAericleListResp)
|
|
|
+ item.ArticleId = v2.ArticleId
|
|
|
+ item.Title = v2.Title
|
|
|
+ item.PublishDate = v2.PublishDate
|
|
|
+ item.SubjectName = v2.SubjectName
|
|
|
+ item.IndustrialSubjectId = v2.IndustrialSubjectId
|
|
|
+ item.DepartmentId = v2.DepartmentId
|
|
|
+ item.NickName = v2.NickName
|
|
|
+ item.Pv = v2.Pv
|
|
|
+ item.CollectNum = v2.CollectNum
|
|
|
+ item.MyCollectNum = v2.MyCollectNum
|
|
|
+ if v2.MyCollectNum > 0 {
|
|
|
+ item.IsCollect = true
|
|
|
}
|
|
|
+ item.SubjectName = mapArticleSubjectName[v2.ArticleId]
|
|
|
+ resp.List = append(resp.List, item)
|
|
|
+ }
|
|
|
|
|
|
+ listSub, err := models.GetcygxIndustrialSubject(industrialManagementId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- //当标的为空时进行合并
|
|
|
- if len(itemsNull) > 0 {
|
|
|
- for _, v := range itemsNull {
|
|
|
- resp.List = append(resp.List, v)
|
|
|
+ for _, v := range listSub {
|
|
|
+ itemSubJect := new(models.IndustrialSubject)
|
|
|
+ itemSubJect.SubjectName = v.SubjectName
|
|
|
+ itemSubJect.IndustrialSubjectId = v.IndustrialSubjectId
|
|
|
+ if subjectMap[v.IndustrialSubjectId] != "" {
|
|
|
+ resp.ListSubject = append(resp.ListSubject, itemSubJect)
|
|
|
}
|
|
|
}
|
|
|
br.Ret = 200
|
|
@@ -430,8 +504,21 @@ func (this *ResearchController) DepartmentIdDetail() {
|
|
|
br.Msg = "请输入作者ID"
|
|
|
return
|
|
|
}
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds == "" {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var condition string
|
|
|
+ condition = ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
resp := new(models.DepartmentDetailResp)
|
|
|
- detail, err := models.GetDepartmentDetail(user.UserId, departmentId)
|
|
|
+ detail, err := models.GetDepartmentDetail(user.UserId, departmentId, condition)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取作者信息失败,Err:" + err.Error()
|
|
@@ -446,18 +533,33 @@ func (this *ResearchController) DepartmentIdDetail() {
|
|
|
if detail.MyFllowNum > 0 {
|
|
|
resp.IsFllow = true
|
|
|
}
|
|
|
- var condition string
|
|
|
- condition = ` AND a.department_id = ` + strconv.Itoa(departmentId) + ` ORDER BY a.publish_date DESC `
|
|
|
+ condition += ` AND a.department_id = ` + strconv.Itoa(departmentId) + ` GROUP BY a.article_id ORDER BY a.publish_date DESC `
|
|
|
list, err := models.GetArticleCollectionList(condition, user.UserId)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ var articleIds []int
|
|
|
for k, v := range list {
|
|
|
if v.MyCollectNum > 0 {
|
|
|
list[k].IsCollect = true
|
|
|
}
|
|
|
+ articleIds = append(articleIds, v.ArticleId)
|
|
|
+ }
|
|
|
+ //处理关联的产业
|
|
|
+ industrialMap, err := services.GetArticleIndustrialByArticleId(articleIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取关联的产业信息失败,GetArticleIndustrialByArticleId Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for k, v := range list {
|
|
|
+ if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
+ list[k].List = industrialMap[v.ArticleId]
|
|
|
+ } else {
|
|
|
+ list[k].List = make([]*models.IndustrialManagementResp, 0)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
condition = ` AND a.department_id = ` + strconv.Itoa(departmentId)
|
|
@@ -548,3 +650,161 @@ func (this *ResearchController) HotKeyWord() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// @Title 研选文章类型列表
|
|
|
+// @Description 研选文章类型列表接口
|
|
|
+// @Success 200 {object} models.CygxArticleTypeListResp
|
|
|
+// @router /article/typeList [get]
|
|
|
+func (this *ResearchController) ArticleType() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ user := this.User
|
|
|
+ if user == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ key := utils.YAN_XUAN_TAB_KEY
|
|
|
+ conf, e := models.GetConfigByCode(key)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取首页头部导航失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if conf.ConfigValue == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "首页头部导航配置值有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list := new(models.CygxArticleTypeListResp)
|
|
|
+ if e = json.Unmarshal([]byte(conf.ConfigValue), &list); e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "首页头部导航配置值解析失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := new(models.CygxArticleTypeListResp)
|
|
|
+ resp = list
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 研选最新报告列表
|
|
|
+// @Description 研选最新报告列表接口
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param ArticleTypeIds query array true "文章类型ID多个用 , 隔开"
|
|
|
+// @Success 200 {object} models.IndustrialManagementNewList
|
|
|
+// @router /article/newList [get]
|
|
|
+func (this *ResearchController) ArticleNewList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ user := this.User
|
|
|
+ if user == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ articleTypeIds := this.GetString("ArticleTypeIds")
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
+ var condition string
|
|
|
+ var conditiontype string
|
|
|
+ var pars []interface{}
|
|
|
+ condition = ` AND publish_status = 1 `
|
|
|
+ if articleTypeIds == "" {
|
|
|
+ conditiontype = " AND is_show_yanx = 1 "
|
|
|
+ } else {
|
|
|
+ conditiontype = ` AND group_id IN (` + articleTypeIds + `) `
|
|
|
+ }
|
|
|
+ listType, err := models.GetCygxArticleTypeListCondition(conditiontype)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ articleTypeIds = ""
|
|
|
+ for _, v := range listType {
|
|
|
+ articleTypeIds += strconv.Itoa(v.ArticleTypeId) + ","
|
|
|
+ }
|
|
|
+ articleTypeIds = strings.TrimRight(articleTypeIds, ",")
|
|
|
+ condition += ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ total, err := models.GetArticleResearchCount(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetArticleResearchCount,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, err := models.GetArticleResearchList(condition, pars, startSize, pageSize, user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var articleIds []int
|
|
|
+ for k, v := range list {
|
|
|
+ if v.MyCollectNum > 0 {
|
|
|
+ list[k].IsCollect = true
|
|
|
+ }
|
|
|
+ articleIds = append(articleIds, v.ArticleId)
|
|
|
+ }
|
|
|
+ //处理关联的产业
|
|
|
+ industrialMap, err := services.GetArticleIndustrialByArticleId(articleIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取关联的产业信息失败,GetArticleIndustrialByArticleId Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for k, v := range list {
|
|
|
+ if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
+ list[k].List = industrialMap[v.ArticleId]
|
|
|
+ } else {
|
|
|
+ list[k].List = make([]*models.IndustrialManagementResp, 0)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //处理对应的文章类型标签按钮
|
|
|
+ nameMap, styleMap, err := services.GetArticleTypeMap()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetArticleTypeMap Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ resp := new(models.ArticleResearchListResp)
|
|
|
+ for _, v := range list {
|
|
|
+ item := models.ArticleResearchResp{
|
|
|
+ ArticleId: v.ArticleId,
|
|
|
+ Title: v.Title,
|
|
|
+ PublishDate: v.PublishDate,
|
|
|
+ DepartmentId: v.DepartmentId,
|
|
|
+ NickName: v.NickName,
|
|
|
+ IsCollect: v.IsCollect,
|
|
|
+ Pv: v.Pv,
|
|
|
+ CollectNum: v.CollectNum,
|
|
|
+ ArticleTypeName: nameMap[v.ArticleTypeId],
|
|
|
+ ButtonStyle: styleMap[v.ArticleTypeId],
|
|
|
+ List: v.List,
|
|
|
+ }
|
|
|
+ resp.List = append(resp.List, &item)
|
|
|
+ }
|
|
|
+ resp.Paging = page
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|