|
@@ -4,8 +4,6 @@ import (
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
- "strconv"
|
|
|
- "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -43,7 +41,7 @@ func (this *ReportBillboardController) CompanyTableList() {
|
|
|
|
|
|
// @Title 产业关注榜
|
|
|
// @Description 获取产业关注榜接口
|
|
|
-// @Param ChartPermissionId query int true "分类ID"
|
|
|
+// @Param ChartPermissionId query int false "行业ID"
|
|
|
// @Success 200 {object} models.IndustrialManagementList
|
|
|
// @router /industry/fllowList [get]
|
|
|
func (this *ReportBillboardController) FllowList() {
|
|
@@ -59,80 +57,98 @@ func (this *ReportBillboardController) FllowList() {
|
|
|
return
|
|
|
}
|
|
|
uid := user.UserId
|
|
|
- pageSize, _ := this.GetInt("PageSize")
|
|
|
- currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
- var startSize int
|
|
|
- if pageSize <= 0 {
|
|
|
- pageSize = utils.PageSize15
|
|
|
- }
|
|
|
- if currentIndex <= 0 {
|
|
|
- currentIndex = 1
|
|
|
- }
|
|
|
+ // 行业ID暂时不需要了调整为非必填
|
|
|
chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- if chartPermissionId < 1 {
|
|
|
- br.Msg = "请输入行业ID"
|
|
|
+
|
|
|
+ // 查询有已归类行业报告的行业IDs
|
|
|
+ activeIndustryIds, e := models.GetActiveArticleIndustryIds()
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取已归类行业失败, Err:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
- var orderSrt string
|
|
|
- var industrialManagementIds string
|
|
|
- condition += ` AND man.chart_permission_id = ? `
|
|
|
- pars = append(pars, chartPermissionId)
|
|
|
- orderSrt = " man.user_fllow_num DESC " // 排序方式
|
|
|
- list, err := models.GetIndustrialManagementFllowBillboard(pars, condition, orderSrt, startSize, pageSize)
|
|
|
- if err != nil {
|
|
|
+ activeIndustryLen := len(activeIndustryIds)
|
|
|
+
|
|
|
+ topNum := utils.PageSize15
|
|
|
+ var condition, subCond string
|
|
|
+ var pars, subPars []interface{}
|
|
|
+ if chartPermissionId > 0 {
|
|
|
+ condition += ` AND man.chart_permission_id = ? `
|
|
|
+ pars = append(pars, chartPermissionId)
|
|
|
+ }
|
|
|
+ if activeIndustryLen > 0 {
|
|
|
+ condition += ` AND man.industrial_management_id IN (` + utils.GetOrmInReplace(activeIndustryLen) + `)`
|
|
|
+ pars = append(pars, activeIndustryIds)
|
|
|
+ }
|
|
|
+ nowTime := time.Now().Local()
|
|
|
+ startTime := nowTime.AddDate(0, -1, 0)
|
|
|
+ endTime := nowTime.AddDate(0, 0, -1)
|
|
|
+ condition += ` AND idf.create_time BETWEEN ? AND ?`
|
|
|
+ pars = append(pars, startTime, endTime)
|
|
|
+
|
|
|
+ // 查询近一个月至昨日关注度最高的15个产业(不再指定行业, chartPermissionId可筛选行业)
|
|
|
+ list, e := models.GetTopIndustryFollowData(0, topNum, condition, pars)
|
|
|
+ if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,GetIndustrialManagementFllowBillboard Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取关注度最高的产业数据失败, Err:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- fllowList, err := models.GetUserFllowIndustrialList(uid)
|
|
|
+ industryIdArr := make([]int, 0)
|
|
|
+ for i := range list {
|
|
|
+ industryIdArr = append(industryIdArr, list[i].IndustrialManagementId)
|
|
|
+ }
|
|
|
+ idsLen := len(industryIdArr)
|
|
|
+
|
|
|
+ // 查询当前用户关注的产业
|
|
|
+ followList, 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] = uid
|
|
|
- }
|
|
|
+ followMap := make(map[int]int, 0)
|
|
|
+ for i := range followList {
|
|
|
+ followMap[followList[i].IndustrialManagementId] = 1
|
|
|
}
|
|
|
- for k, v := range list {
|
|
|
- if fllowMap[v.IndustrialManagementId] > 0 {
|
|
|
- list[k].IsFollow = 1
|
|
|
- }
|
|
|
- industrialManagementIds += strconv.Itoa(v.IndustrialManagementId) + ","
|
|
|
- }
|
|
|
- industrialManagementIds = strings.TrimRight(industrialManagementIds, ",")
|
|
|
- silceindustrialManagementIds := strings.Split(industrialManagementIds, ",")
|
|
|
- //获取关联的标的
|
|
|
- pars = make([]interface{}, 0)
|
|
|
- industrialIdList := make([]string, 0)
|
|
|
- for _, v := range silceindustrialManagementIds {
|
|
|
- industrialIdList = append(industrialIdList, v)
|
|
|
+
|
|
|
+ // 查询产业标的
|
|
|
+ if idsLen > 0 {
|
|
|
+ subCond = `AND s.industrial_management_id IN ( ` + utils.GetOrmInReplace(idsLen) + ` ) `
|
|
|
+ subPars = append(subPars, industryIdArr)
|
|
|
}
|
|
|
- condition = `AND s.industrial_management_id IN ( ` + utils.GetOrmInReplace(len(silceindustrialManagementIds)) + ` ) `
|
|
|
- pars = append(pars, industrialIdList)
|
|
|
- subjectList, err := models.GetSubjectList(pars, condition)
|
|
|
+ subjectList, err := models.GetSubjectList(subPars, subCond)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取失败,GetSubjectList Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
subjectMap := make(map[int][]*models.IndustrialSubject)
|
|
|
- if len(fllowList) > 0 {
|
|
|
- for _, v := range subjectList {
|
|
|
- item := new(models.IndustrialSubject)
|
|
|
- item.SubjectName = v.SubjectName
|
|
|
- item.IndustrialManagementId = v.IndustrialManagementId
|
|
|
- subjectMap[v.IndustrialManagementId] = append(subjectMap[v.IndustrialManagementId], item)
|
|
|
- }
|
|
|
+ for i := range subjectList {
|
|
|
+ item := new(models.IndustrialSubject)
|
|
|
+ item.SubjectName = subjectList[i].SubjectName
|
|
|
+ item.IndustrialManagementId = subjectList[i].IndustrialManagementId
|
|
|
+ subjectMap[subjectList[i].IndustrialManagementId] = append(subjectMap[subjectList[i].IndustrialManagementId], item)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询行业
|
|
|
+ permissionList, e := models.GetChartPermissionAll("")
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取行业信息失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
}
|
|
|
+ permissionMap := make(map[int]string, 0)
|
|
|
+ for i := range permissionList {
|
|
|
+ permissionMap[permissionList[i].ChartPermissionId] = permissionList[i].PermissionName
|
|
|
+ }
|
|
|
+
|
|
|
for k, v := range list {
|
|
|
+ list[k].IsFollow = followMap[v.IndustrialManagementId]
|
|
|
list[k].IndustrialSubjectList = subjectMap[v.IndustrialManagementId]
|
|
|
+ list[k].PermissionName = permissionMap[v.ChartPermissionId]
|
|
|
}
|
|
|
- page := paging.GetPaging(currentIndex, pageSize, len(list))
|
|
|
+
|
|
|
+ page := paging.GetPaging(1, topNum, len(list))
|
|
|
resp := new(models.IndustrialManagementList)
|
|
|
resp.List = list
|
|
|
resp.Paging = page
|
|
@@ -144,7 +160,7 @@ func (this *ReportBillboardController) FllowList() {
|
|
|
|
|
|
// @Title 阅读飙升榜/报告收藏榜
|
|
|
// @Description 获取阅读飙升榜/报告收藏榜接口
|
|
|
-// @Param ChartPermissionId query int true "分类ID"
|
|
|
+// @Param ChartPermissionId query int false "分类ID"
|
|
|
// @Param Source query int true "来源 2:阅读飙升 ,3:报告收藏"
|
|
|
// @Success 200 {object} models.ArticleReportBillboardLIstResp
|
|
|
// @router /industry/readList [get]
|
|
@@ -162,109 +178,96 @@ func (this *ReportBillboardController) ReadList() {
|
|
|
}
|
|
|
chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
source, _ := this.GetInt("Source")
|
|
|
- var list []*models.ArticleReportBillboardResp
|
|
|
- if chartPermissionId < 1 {
|
|
|
- br.Msg = "请输入行业ID"
|
|
|
+ sourceArr := []int{2, 3}
|
|
|
+ if !utils.InArrayByInt(sourceArr, source) {
|
|
|
+ br.Msg = "来源有误"
|
|
|
return
|
|
|
}
|
|
|
- var err error
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
- condition += ` AND m.chart_permission_id = ? `
|
|
|
- pars = append(pars, chartPermissionId)
|
|
|
+
|
|
|
+ topNum := utils.PageSize15
|
|
|
+ list := make([]*models.ArticleReportBillboardResp, 0)
|
|
|
+
|
|
|
+ // 阅读飙升榜
|
|
|
if source == 2 {
|
|
|
- //阅读飙升榜
|
|
|
- var conditionPv string
|
|
|
- var articleTopIds string
|
|
|
- conditionPv = condition
|
|
|
- dateTime := time.Now().AddDate(0, 0, -15).Format(utils.FormatDate)
|
|
|
- conditionPv += ` AND l.create_time > ? AND l.create_time < ? `
|
|
|
- pars = append(pars, dateTime, time.Now().Format(utils.FormatDate))
|
|
|
- listTop, err := models.GetCygxArticleHistoryAllTop(pars, conditionPv)
|
|
|
- if err != nil {
|
|
|
+ var topCond string
|
|
|
+ var topPars []interface{}
|
|
|
+ if chartPermissionId > 0 {
|
|
|
+ topCond += ` AND chart_permission_id = ?`
|
|
|
+ topPars = append(topPars, chartPermissionId)
|
|
|
+ }
|
|
|
+ topList, e := models.GetTopReadRecordArticleListByCondition(topNum, topCond, topPars)
|
|
|
+ if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,GetCygxArticleHistoryAllTop Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取报告阅读增量排行榜失败, Err:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- for _, v := range listTop {
|
|
|
- articleTopIds += strconv.Itoa(v.ArticleId) + ","
|
|
|
- item := new(models.ArticleReportBillboardResp)
|
|
|
- item.ArticleId = v.ArticleId
|
|
|
- list = append(list, item)
|
|
|
+ for i := range topList {
|
|
|
+ list = append(list, &models.ArticleReportBillboardResp{
|
|
|
+ ArticleId: topList[i].ArticleId,
|
|
|
+ Title: topList[i].Title,
|
|
|
+ PublishDate: topList[i].PublishDate,
|
|
|
+ PermissionName: topList[i].PermissionName,
|
|
|
+ })
|
|
|
}
|
|
|
- articleTopIds = strings.TrimRight(articleTopIds, ",")
|
|
|
- //获取文章关联的产业
|
|
|
- pars = make([]interface{}, 0)
|
|
|
- articleIdList := make([]string, 0)
|
|
|
- silcearticleIds := strings.Split(articleTopIds, ",")
|
|
|
- for _, v := range silcearticleIds {
|
|
|
- articleIdList = append(articleIdList, v)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 报告收藏榜
|
|
|
+ if source == 3 {
|
|
|
+ var collectCond string
|
|
|
+ var collectPars []interface{}
|
|
|
+ if chartPermissionId > 0 {
|
|
|
+ collectCond += ` AND m.chart_permission_id = ?`
|
|
|
+ collectPars = append(collectPars, chartPermissionId)
|
|
|
}
|
|
|
- condition = ` AND a.article_id IN ( ` + utils.GetOrmInReplace(len(silcearticleIds)) + ` ) `
|
|
|
- pars = append(pars, articleIdList)
|
|
|
- condition += ` AND m.chart_permission_id = ? `
|
|
|
- pars = append(pars, chartPermissionId)
|
|
|
- listPv, err := models.GetReportPvBillboardList(pars, condition)
|
|
|
- if err != nil {
|
|
|
+ // 根据关注时间一个月前至昨日的增量数据排序
|
|
|
+ nowTime := time.Now().Local()
|
|
|
+ startTime := nowTime.AddDate(0, -1, 0)
|
|
|
+ endTime := nowTime.AddDate(0, 0, -1)
|
|
|
+ collectCond += ` AND ac.create_time BETWEEN ? AND ?`
|
|
|
+ collectPars = append(collectPars, startTime, endTime)
|
|
|
+ collectList, e := models.GetReportCollectionBillboardList(topNum, collectPars, collectCond)
|
|
|
+ if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,GetReportPvBillboardList Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取报告收藏排行榜失败, Err:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- //按照查询出来的顺序赋值
|
|
|
- mapPv := make(map[int]*models.ArticleReportBillboardResp)
|
|
|
- for _, v := range listPv {
|
|
|
- mapPv[v.ArticleId] = v
|
|
|
- }
|
|
|
- for k, v := range list {
|
|
|
- list[k] = mapPv[v.ArticleId]
|
|
|
- }
|
|
|
- } else {
|
|
|
- //获取报告收藏
|
|
|
- condition += `GROUP BY a.article_id ORDER BY a.user_collection_num DESC, ac.id DESC, a.publish_date DESC LIMIT 15 `
|
|
|
- list, err = models.GetReportCollectionBillboardList(pars, condition)
|
|
|
- }
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,GetSubjectList Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- var articleIds string
|
|
|
- for _, v := range list {
|
|
|
- articleIds += strconv.Itoa(v.ArticleId) + ","
|
|
|
- }
|
|
|
- articleIds = strings.TrimRight(articleIds, ",")
|
|
|
- silcearticleIds := strings.Split(articleIds, ",")
|
|
|
- //获取文章关联的产业
|
|
|
- pars = make([]interface{}, 0)
|
|
|
- articleIdList := make([]string, 0)
|
|
|
- for _, v := range silcearticleIds {
|
|
|
- articleIdList = append(articleIdList, v)
|
|
|
+ list = collectList
|
|
|
}
|
|
|
- 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
|
|
|
+ articleIds := make([]int, 0)
|
|
|
+ for i := range list {
|
|
|
+ articleIds = append(articleIds, list[i].ArticleId)
|
|
|
}
|
|
|
- industrialMap := make(map[int][]*models.IndustrialManagementIdInt)
|
|
|
- if len(industrialList) > 0 {
|
|
|
- for _, v := range industrialList {
|
|
|
- item := new(models.IndustrialManagementIdInt)
|
|
|
- item.ArticleId = v.ArticleId
|
|
|
- item.IndustrialManagementId = v.IndustrialManagementId
|
|
|
- item.IndustryName = v.IndustryName
|
|
|
- industrialMap[v.ArticleId] = append(industrialMap[v.ArticleId], item)
|
|
|
+
|
|
|
+ // 报告关联产业信息
|
|
|
+ industryMap := make(map[int][]*models.IndustrialManagementIdInt, 0)
|
|
|
+ if len(articleIds) > 0 {
|
|
|
+ var industryCond string
|
|
|
+ var industryPars []interface{}
|
|
|
+ industryCond += ` AND mg.article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `)`
|
|
|
+ industryPars = append(industryPars, articleIds)
|
|
|
+ industryList, e := models.GetIndustrialListByarticleId(industryPars, industryCond)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取报告关联的产业信息失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for i := range industryList {
|
|
|
+ v := industryList[i]
|
|
|
+ industryMap[v.ArticleId] = append(industryMap[v.ArticleId], &models.IndustrialManagementIdInt{
|
|
|
+ ArticleId: v.ArticleId,
|
|
|
+ IndustrialManagementId: v.IndustrialManagementId,
|
|
|
+ IndustryName: v.IndustryName,
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
for k, v := range list {
|
|
|
- if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
- list[k].List = industrialMap[v.ArticleId]
|
|
|
+ if len(industryMap[v.ArticleId]) > 0 {
|
|
|
+ list[k].List = industryMap[v.ArticleId]
|
|
|
} else {
|
|
|
list[k].List = make([]*models.IndustrialManagementIdInt, 0)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
resp := new(models.ArticleReportBillboardLIstResp)
|
|
|
resp.List = list
|
|
|
br.Ret = 200
|