|
@@ -5,6 +5,8 @@ import (
|
|
|
"hongze/hongze_cygx/models"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"strconv"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
//报告榜单
|
|
@@ -45,35 +47,6 @@ func (this *ReportBillboardController) CompanyTableList() {
|
|
|
// @Success 200 {object} models.IndustrialManagementList
|
|
|
// @router /industry/fllowList [get]
|
|
|
func (this *ReportBillboardController) FllowList() {
|
|
|
- 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
|
|
|
- }
|
|
|
- chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- if chartPermissionId < 1 {
|
|
|
- br.Msg = "请输入行业ID"
|
|
|
- return
|
|
|
- }
|
|
|
- resp := new(models.IndustrialManagementList)
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = resp
|
|
|
-}
|
|
|
-
|
|
|
-// @Title 阅读飙升榜
|
|
|
-// @Description 获取阅读飙升榜接口
|
|
|
-// @Param ChartPermissionId query int true "分类ID"
|
|
|
-// @Success 200 {object} models.IndustrialManagementList
|
|
|
-// @router /industry/readList [get]
|
|
|
-func (this *ReportBillboardController) ReadList() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -86,90 +59,81 @@ func (this *ReportBillboardController) ReadList() {
|
|
|
return
|
|
|
}
|
|
|
uid := user.UserId
|
|
|
-
|
|
|
- ChartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- orderColumn := this.GetString("OrderColumn")
|
|
|
-
|
|
|
pageSize, _ := this.GetInt("PageSize")
|
|
|
currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
- var orderSrt string
|
|
|
- var condition string
|
|
|
var startSize int
|
|
|
- resp := new(models.IndustrialManagementList)
|
|
|
if pageSize <= 0 {
|
|
|
- pageSize = utils.PageSize20
|
|
|
+ pageSize = utils.PageSize15
|
|
|
}
|
|
|
if currentIndex <= 0 {
|
|
|
currentIndex = 1
|
|
|
}
|
|
|
- startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
- var sqlChartPermissionId string
|
|
|
- if ChartPermissionId > 0 {
|
|
|
- sqlChartPermissionId += ` AND man_g.industrial_management_id IN ( SELECT industrial_management_id FROM cygx_industrial_management WHERE chart_permission_id = ` + strconv.Itoa(ChartPermissionId) + ` ) `
|
|
|
- condition += ` AND man.chart_permission_id IN (` + strconv.Itoa(ChartPermissionId) + `)`
|
|
|
+ chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
+ if chartPermissionId < 1 {
|
|
|
+ br.Msg = "请输入行业ID"
|
|
|
+ return
|
|
|
}
|
|
|
- var list []*models.IndustrialManagement
|
|
|
- total, err := models.GetIndustrialManagementAllCount(condition)
|
|
|
+ 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 {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取数量失败,Err:" + err.Error()
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetIndustrialManagementFllowBillboard Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
- if orderColumn == "" {
|
|
|
- orderColumn = "NewTime"
|
|
|
+ fllowList, err := models.GetUserFllowIndustrialList(uid)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetUserFllowIndustrialList Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- if orderColumn == "NewTime" {
|
|
|
- orderSrt = "update_time DESC"
|
|
|
- } else {
|
|
|
- orderSrt = "man.recommended_index DESC,update_time DESC"
|
|
|
+ fllowMap := make(map[int]int)
|
|
|
+ if len(fllowList) > 0 {
|
|
|
+ for _, v := range fllowList {
|
|
|
+ fllowMap[v.IndustrialManagementId] = uid
|
|
|
+ }
|
|
|
}
|
|
|
- if ChartPermissionId == 0 {
|
|
|
- ChartPermissionId = 20
|
|
|
+ for k, v := range list {
|
|
|
+ if fllowMap[v.IndustrialManagementId] > 0 {
|
|
|
+ list[k].IsFollow = 1
|
|
|
+ }
|
|
|
+ industrialManagementIds += strconv.Itoa(v.IndustrialManagementId) + ","
|
|
|
}
|
|
|
- detailHot3, err := models.GetIndustrialManagementHot3(ChartPermissionId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
+ industrialManagementIds = strings.TrimRight(industrialManagementIds, ",")
|
|
|
+ silceindustrialManagementIds := strings.Split(industrialManagementIds, ",")
|
|
|
+ //获取关联的标的
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ industrialIdList := make([]string, 0)
|
|
|
+ for _, v := range silceindustrialManagementIds {
|
|
|
+ industrialIdList = append(industrialIdList, v)
|
|
|
}
|
|
|
-
|
|
|
- list, err = models.GetIndustrialManagementAll(uid, condition, orderSrt, startSize, pageSize)
|
|
|
+ condition = `AND s.industrial_management_id IN ( ` + utils.GetOrmInReplace(len(silceindustrialManagementIds)) + ` ) `
|
|
|
+ pars = append(pars, industrialIdList)
|
|
|
+ subjectList, err := models.GetSubjectList(pars, condition)
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetSubjectList Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- for k, v := range list {
|
|
|
- industrialSubjectList, err := models.GetIndustrialSubjectAll(v.IndustrialManagementId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- list[k].IndustrialSubjectList = industrialSubjectList
|
|
|
- list[k].LayoutTime = utils.TimeRemoveHms(v.LayoutTime)
|
|
|
- newArtinfo, err := models.GetIndustrialNewArticleDetail(v.IndustrialManagementId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- list[k].UpdateTime = utils.TimeRemoveHms(newArtinfo.PublishDate)
|
|
|
- recordCount, err := models.GetUserToArticleCount(uid, newArtinfo.ArticleId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取信息失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(newArtinfo.ArticleId)
|
|
|
- return
|
|
|
- }
|
|
|
- if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(newArtinfo.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(newArtinfo.PublishDate)) {
|
|
|
- list[k].IsRed = true
|
|
|
- }
|
|
|
- if v.ArticleReadNum >= detailHot3.ArticleReadNum {
|
|
|
- list[k].IsHot = true
|
|
|
+ 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 k, v := range list {
|
|
|
+ list[k].IndustrialSubjectList = subjectMap[v.IndustrialManagementId]
|
|
|
+ }
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, len(list))
|
|
|
+ resp := new(models.IndustrialManagementList)
|
|
|
resp.List = list
|
|
|
resp.Paging = page
|
|
|
br.Ret = 200
|
|
@@ -178,12 +142,13 @@ func (this *ReportBillboardController) ReadList() {
|
|
|
br.Data = resp
|
|
|
}
|
|
|
|
|
|
-// @Title 报告收藏榜
|
|
|
-// @Description 获取报告收藏榜接口
|
|
|
+// @Title 阅读飙升榜/报告收藏榜
|
|
|
+// @Description 获取阅读飙升榜/报告收藏榜接口
|
|
|
// @Param ChartPermissionId query int true "分类ID"
|
|
|
-// @Success 200 {object} models.IndustrialManagementList
|
|
|
-// @router /industry/collectList [get]
|
|
|
-func (this *ReportBillboardController) CollectList() {
|
|
|
+// @Param Source query int true "来源 2:阅读飙升 ,3:报告收藏"
|
|
|
+// @Success 200 {object} models.ArticleReportBillboardLIstResp
|
|
|
+// @router /industry/readList [get]
|
|
|
+func (this *ReportBillboardController) ReadList() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
this.Data["json"] = br
|
|
@@ -195,95 +160,115 @@ func (this *ReportBillboardController) CollectList() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
- uid := user.UserId
|
|
|
-
|
|
|
- ChartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
- orderColumn := this.GetString("OrderColumn")
|
|
|
-
|
|
|
- pageSize, _ := this.GetInt("PageSize")
|
|
|
- currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
- var orderSrt string
|
|
|
- var condition string
|
|
|
- var startSize int
|
|
|
- resp := new(models.IndustrialManagementList)
|
|
|
- if pageSize <= 0 {
|
|
|
- pageSize = utils.PageSize20
|
|
|
- }
|
|
|
- if currentIndex <= 0 {
|
|
|
- currentIndex = 1
|
|
|
+ chartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
+ source, _ := this.GetInt("Source")
|
|
|
+ var list []*models.ArticleReportBillboardResp
|
|
|
+ if chartPermissionId < 1 {
|
|
|
+ br.Msg = "请输入行业ID"
|
|
|
+ return
|
|
|
}
|
|
|
- startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
- var sqlChartPermissionId string
|
|
|
- if ChartPermissionId > 0 {
|
|
|
- sqlChartPermissionId += ` AND man_g.industrial_management_id IN ( SELECT industrial_management_id FROM cygx_industrial_management WHERE chart_permission_id = ` + strconv.Itoa(ChartPermissionId) + ` ) `
|
|
|
- condition += ` AND man.chart_permission_id IN (` + strconv.Itoa(ChartPermissionId) + `)`
|
|
|
+ var err error
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition += ` AND m.chart_permission_id = ? `
|
|
|
+ pars = append(pars, chartPermissionId)
|
|
|
+ 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 > ? `
|
|
|
+ pars = append(pars, dateTime)
|
|
|
+ listTop, err := models.GetCygxArticleHistoryAllTop(pars, conditionPv)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetCygxArticleHistoryAllTop Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listTop {
|
|
|
+ articleTopIds += strconv.Itoa(v.ArticleId) + ","
|
|
|
+ item := new(models.ArticleReportBillboardResp)
|
|
|
+ item.ArticleId = v.ArticleId
|
|
|
+ list = append(list, item)
|
|
|
+ }
|
|
|
+ articleTopIds = strings.TrimRight(articleTopIds, ",")
|
|
|
+ //获取文章关联的产业
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ articleIdList := make([]string, 0)
|
|
|
+ silcearticleIds := strings.Split(articleTopIds, ",")
|
|
|
+ for _, v := range silcearticleIds {
|
|
|
+ articleIdList = append(articleIdList, v)
|
|
|
+ }
|
|
|
+ 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 {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetReportPvBillboardList Err:" + err.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)
|
|
|
}
|
|
|
- var list []*models.IndustrialManagement
|
|
|
- total, err := models.GetIndustrialManagementAllCount(condition)
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取数量失败,Err:" + err.Error()
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetSubjectList Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
- if orderColumn == "" {
|
|
|
- orderColumn = "NewTime"
|
|
|
- }
|
|
|
- if orderColumn == "NewTime" {
|
|
|
- orderSrt = "update_time DESC"
|
|
|
- } else {
|
|
|
- orderSrt = "man.recommended_index DESC,update_time DESC"
|
|
|
+ var articleIds string
|
|
|
+ for _, v := range list {
|
|
|
+ articleIds += strconv.Itoa(v.ArticleId) + ","
|
|
|
}
|
|
|
- if ChartPermissionId == 0 {
|
|
|
- ChartPermissionId = 20
|
|
|
+ articleIds = strings.TrimRight(articleIds, ",")
|
|
|
+ silcearticleIds := strings.Split(articleIds, ",")
|
|
|
+ //获取文章关联的产业
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
+ articleIdList := make([]string, 0)
|
|
|
+ for _, v := range silcearticleIds {
|
|
|
+ articleIdList = append(articleIdList, v)
|
|
|
}
|
|
|
- detailHot3, err := models.GetIndustrialManagementHot3(ChartPermissionId)
|
|
|
+ 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 = "获取信息失败,Err:" + err.Error()
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,GetSubjectList Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- list, err = models.GetIndustrialManagementAll(uid, condition, orderSrt, startSize, pageSize)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
+ 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)
|
|
|
+ }
|
|
|
}
|
|
|
for k, v := range list {
|
|
|
- industrialSubjectList, err := models.GetIndustrialSubjectAll(v.IndustrialManagementId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- list[k].IndustrialSubjectList = industrialSubjectList
|
|
|
- list[k].LayoutTime = utils.TimeRemoveHms(v.LayoutTime)
|
|
|
- newArtinfo, err := models.GetIndustrialNewArticleDetail(v.IndustrialManagementId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- list[k].UpdateTime = utils.TimeRemoveHms(newArtinfo.PublishDate)
|
|
|
- recordCount, err := models.GetUserToArticleCount(uid, newArtinfo.ArticleId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取信息失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(newArtinfo.ArticleId)
|
|
|
- return
|
|
|
- }
|
|
|
- if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(newArtinfo.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(newArtinfo.PublishDate)) {
|
|
|
- list[k].IsRed = true
|
|
|
- }
|
|
|
- if v.ArticleReadNum >= detailHot3.ArticleReadNum {
|
|
|
- list[k].IsHot = true
|
|
|
+ if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
+ list[k].List = industrialMap[v.ArticleId]
|
|
|
+ } else {
|
|
|
+ list[k].List = make([]*models.IndustrialManagementIdInt, 0)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ resp := new(models.ArticleReportBillboardLIstResp)
|
|
|
resp.List = list
|
|
|
- resp.Paging = page
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
-}
|
|
|
+}
|