|
@@ -7,6 +7,7 @@ import (
|
|
|
"hongze/hongze_clpt/utils"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
type MobileResearchController struct {
|
|
@@ -204,3 +205,225 @@ func (this *MobileResearchController) KolList() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// @Title 主题热度/近期更新更多,列表
|
|
|
+// @Description 主题热度/近期更新更多,列表接口
|
|
|
+// @Param ThemeType query int true "主题类型,1主题热度、2近期更新 默认1"
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Success 200 {object} models.IndustrialManagementHotListResp
|
|
|
+// @router /hotList [get]
|
|
|
+func (this *MobileResearchController) HotList() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ themeType, _ := this.GetInt("ThemeType", 1)
|
|
|
+ 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)
|
|
|
+ var condition string
|
|
|
+ if themeType == 1 {
|
|
|
+ condition = `ORDER BY publish_date DESC `
|
|
|
+ } else {
|
|
|
+ condition = `ORDER BY sum_num DESC `
|
|
|
+ }
|
|
|
+ total, err := models.GetThemeHeatListCount("")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, err := models.GetThemeHeatList(user.UserId, condition, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ 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)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range listHot {
|
|
|
+ mapHot[v.IndustryName] = v.IndustrialManagementId
|
|
|
+ }
|
|
|
+ nowTime := time.Now().Local()
|
|
|
+ threeMonBefore := nowTime.AddDate(0, -3, 0)
|
|
|
+ for k, v := range list {
|
|
|
+ if v.MinReportTime != "" {
|
|
|
+ t, err := time.Parse(utils.FormatDateTime, v.MinReportTime)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "报告最早发布时间有误,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if t.After(threeMonBefore) {
|
|
|
+ list[k].IsNew = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if v.FllowNum > 0 {
|
|
|
+ list[k].IsFollw = true
|
|
|
+ }
|
|
|
+ for _, v2 := range listSubjcet {
|
|
|
+ if v2.IndustrialManagementId == v.IndustrialManagementId {
|
|
|
+ list[k].IndustrialSubjectList = append(list[k].IndustrialSubjectList, v2)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if mapHot[v.IndustryName] > 0 {
|
|
|
+ list[k].IsHot = true
|
|
|
+ }
|
|
|
+ list[k].PublishDate = utils.StrTimeToTime(v.PublishDate).Format(utils.FormatDate) //时间字符串格式转时间格式
|
|
|
+ }
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ resp := new(models.IndustrialManagementHotListResp)
|
|
|
+ resp.Paging = page
|
|
|
+ resp.List = list
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 主题详情
|
|
|
+// @Description 主题详情接口
|
|
|
+// @Param IndustrialManagementId query int true "分类ID"
|
|
|
+// @Success 200 {object} models.GetThemeDetailResp
|
|
|
+// @router /theme/detail [get]
|
|
|
+func (this *MobileResearchController) ThemeDetail() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ industrialManagementId, _ := this.GetInt("IndustrialManagementId")
|
|
|
+ if industrialManagementId < 1 {
|
|
|
+ br.Msg = "请输入产业ID"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ detailIndustrial, err := models.GetIndustrialManagementDetail(industrialManagementId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var condition string
|
|
|
+
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds != "" {
|
|
|
+ condition = ` AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ } else {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := new(models.GetThemeDetailResp)
|
|
|
+ list, err := models.GetThemeDetail(user.UserId, industrialManagementId, condition)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, err = services.HandleArticleCategoryImg(list)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "HandleArticleCategoryImg,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //处理对应的文章类型标签按钮
|
|
|
+ nameMap, styleMap, err := services.GetArticleTypeMap()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetArticleTypeMap Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var articleIds []int
|
|
|
+ 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,
|
|
|
+ }
|
|
|
+ resp.List = append(resp.List, &item)
|
|
|
+ articleIds = append(articleIds, v.ArticleId)
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理用户数是否关注该产业
|
|
|
+ userFollowIndustrialMap, err := services.GetUserFollowIndustrialMap(user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetArticleTypeMap Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if _, ok := userFollowIndustrialMap[industrialManagementId]; ok {
|
|
|
+ resp.IsFollw = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理文章关联的标的
|
|
|
+ articleGroupSubjectMap, listSubtect, err := services.GetArticleGroupSubjectMap(articleIds)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetArticleTypeMap Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(articleGroupSubjectMap) > 0 {
|
|
|
+ for k, v := range resp.List {
|
|
|
+ resp.List[k].ListSubject = articleGroupSubjectMap[v.ArticleId]
|
|
|
+ }
|
|
|
+ resp.ListSubject = listSubtect
|
|
|
+ }
|
|
|
+
|
|
|
+ resp.IndustryName = detailIndustrial.IndustryName
|
|
|
+ resp.IndustrialManagementId = detailIndustrial.IndustrialManagementId
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|