Browse Source

no message

xingzai 2 years ago
parent
commit
fbf120f3ef
5 changed files with 92 additions and 118 deletions
  1. 16 57
      controllers/home.go
  2. 8 4
      controllers/report.go
  3. 0 34
      controllers/report_billboard.go
  4. 33 23
      models/home.go
  5. 35 0
      services/article.go

+ 16 - 57
controllers/home.go

@@ -5,7 +5,6 @@ import (
 	"hongze/hongze_clpt/models"
 	"hongze/hongze_clpt/services"
 	"hongze/hongze_clpt/utils"
-	"html"
 	"strconv"
 	"strings"
 )
@@ -203,71 +202,31 @@ func (this *MobileHomeController) List() {
 			return
 		}
 
-		list, err := models.GetHomeList(condition, pars, startSize, pageSize)
+		listPublic, err := models.GetHomeListPublic(condition, pars, startSize, pageSize)
 		if err != nil {
 			br.Msg = "获取信息失败"
 			br.Msg = "获取帖子数据失败,Err:" + err.Error()
 			return
 		}
-		//研选的五张图片
-		detailResearch, err := models.GetConfigByCode("category_research_img_url")
+		listPublic, err = services.HandleArticleCategoryImg(listPublic)
 		if err != nil {
-			br.Msg = "获取数据失败"
-			br.ErrMsg = "获取数据研选分类图片失败,Err:" + err.Error()
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取报告封面图片失败, Err:" + err.Error()
 			return
 		}
-		researchList := strings.Split(detailResearch.ConfigValue, "{|}")
-		//对应分类的所图片
-		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 list {
-			item := list[k]
-			//如果文章一开始的内容是图片,优先展示第一张图片
-			imgurl, _ := services.FixArticleImgUrl(html.UnescapeString(list[k].Body))
-			newBody, _ := services.GetReportContentTextSubByarticle(item.Body, item.Annotation, item.ArticleId)
-			list[k].Annotation = newBody
-			list[k].Body = ""
-			if imgurl != "" {
-				list[k].BodyHtml = imgurl
-			}
-			list[k].PublishDate = utils.StrTimeToTime(item.PublishDate).Format(utils.FormatDateTimeNoSecond) //时间字符串格式转时间格式
-			if strings.Contains(item.CategoryName, utils.CHART_PERMISSION_NAME_YANXUAN) {
-				list[k].IsResearch = true
-			}
-			if item.Pv > 999 {
-				list[k].Pv = 999
-			}
-			//如果是研选系列的任意取五张图片的中的一张
-			if v.CategoryId == "0" {
-				knum := v.ArticleId % 5
-				list[k].ImgUrlPc = researchList[knum]
-			} else {
-				list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
-			}
-			if list[k].ArticleId < utils.SummaryArticleId {
-				list[k].HttpUrl = utils.StrategyPlatform + strconv.Itoa(v.ArticleId)
-				list[k].IsNeedJump = true
-			}
-			list[k].Source = 1
-		}
-
-		if len(list) == 0 {
+		var list []*models.HomeArticle
+		if len(listPublic) == 0 {
 			list = make([]*models.HomeArticle, 0)
+		} else {
+			for _, v := range listPublic {
+				list = append(list, &models.HomeArticle{
+					ArticleId:   v.ArticleId,
+					Title:       v.Title,
+					Annotation:  v.Annotation,
+					ImgUrlPc:    v.ImgUrlPc,
+					PublishDate: v.PublishDate,
+				})
+			}
 		}
 		resp.List = list
 	}

+ 8 - 4
controllers/report.go

@@ -173,10 +173,14 @@ func (this *MobileReportController) IndustryList() {
 		currentIndex = 1
 	}
 
-	if isBillboard {
-		pageSize = utils.PageSize15
-		currentIndex = 1
-	}
+	//if isBillboard {
+	//	if pageSize == 0 {
+	//		pageSize = utils.PageSize15
+	//	} else {
+	//		pageSize = utils.PageSize5
+	//	}
+	//	currentIndex = 1
+	//}
 
 	startSize = paging.StartIndex(currentIndex, pageSize)
 	if ChartPermissionId > 0 {

+ 0 - 34
controllers/report_billboard.go

@@ -103,40 +103,6 @@ func (this *MobileReportBillboardController) ReadList() {
 		}
 		list = collectList
 	}
-	articleIds := make([]int, 0)
-	for i := range list {
-		articleIds = append(articleIds, list[i].ArticleId)
-	}
-	// 报告关联产业信息
-	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,
-				ChartPermissionId:      v.ChartPermissionId,
-			})
-		}
-	}
-	for k, v := range list {
-		if len(industryMap[v.ArticleId]) > 0 {
-			list[k].List = industryMap[v.ArticleId]
-		} else {
-			list[k].List = make([]*models.IndustrialManagementIdInt, 0)
-		}
-	}
 	var err error
 	resp := new(models.ReportBillboardListResp)
 	resp.List, err = services.HandleArticleCategoryImg(list)

+ 33 - 23
models/home.go

@@ -21,29 +21,26 @@ type ReportBillboardListResp struct {
 }
 
 type HomeArticle struct {
-	ArticleId        int                  `description:"文章id"`
-	Title            string               `description:"标题"`
-	TitleEn          string               `description:"英文标题 "`
-	UpdateFrequency  string               `description:"更新周期"`
-	CreateDate       string               `description:"创建时间"`
-	PublishDate      string               `description:"发布时间"`
-	Body             string               `description:"内容"`
-	BodyHtml         string               `description:"内容带有HTML标签"`
-	Abstract         string               `description:"摘要"`
-	CategoryName     string               `description:"一级分类"`
-	SubCategoryName  string               `description:"二级分类"`
-	ExpertBackground string               `description:"专家背景"`
-	IsResearch       bool                 `description:"是否属于研选"`
-	Pv               int                  `description:"PV"`
-	ImgUrlPc         string               `description:"图片链接"`
-	CategoryId       string               `description:"文章分类"`
-	HttpUrl          string               `description:"文章链接跳转地址"`
-	IsNeedJump       bool                 `description:"是否需要跳转链接地址"`
-	Source           int                  `description:"来源  1:文章, 2:图表"`
-	Annotation       string               `description:"核心观点"`
-	HomeType         int                  `description:"数据类型:0-纪要(默认); 1-微路演音频"`
-	MicroAudio       *MicroAudioUnionList `description:"微路演音频"`
-	List             []*IndustrialManagementIdInt
+	ArticleId       int                  `description:"文章id"`
+	Title           string               `description:"标题"`
+	TitleEn         string               `description:"英文标题 "`
+	PublishDate     string               `description:"发布时间"`
+	Body            string               `description:"内容"`
+	BodyHtml        string               `description:"内容带有HTML标签"`
+	Abstract        string               `description:"摘要"`
+	CategoryName    string               `description:"一级分类"`
+	SubCategoryName string               `description:"二级分类"`
+	IsResearch      bool                 `description:"是否属于研选"`
+	Pv              int                  `description:"PV"`
+	ImgUrlPc        string               `description:"图片链接"`
+	CategoryId      string               `description:"文章分类"`
+	HttpUrl         string               `description:"文章链接跳转地址"`
+	IsNeedJump      bool                 `description:"是否需要跳转链接地址"`
+	Source          int                  `description:"来源  1:文章, 2:图表"`
+	Annotation      string               `description:"核心观点"`
+	HomeType        int                  `description:"数据类型:0-纪要(默认); 1-微路演音频"`
+	MicroAudio      *MicroAudioUnionList `description:"微路演音频"`
+	List            []*IndustrialManagementIdInt
 }
 
 type ArticleListResp struct {
@@ -115,6 +112,19 @@ func GetHomeList(condition string, pars []interface{}, startSize, pageSize int)
 	return
 }
 
+func GetHomeListPublic(condition string, pars []interface{}, startSize, pageSize int) (items []*ArticleListResp, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * ,(SELECT count(1) FROM cygx_article_history_record_newpv as h WHERE h.article_id = a.article_id ) as pv
+                 FROM cygx_article AS a
+                WHERE a.publish_status=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY publish_date DESC,article_id DESC LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 func GetReportTacticsList(condition string, pars []interface{}, userId, startSize, pageSize int) (items []*HomeArticle, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT * 

+ 35 - 0
services/article.go

@@ -138,6 +138,41 @@ func HandleArticleCategoryImg(list []*models.ArticleListResp) (items []*models.A
 			}
 		}
 	}
+
+	articleIds := make([]int, 0)
+	for i := range list {
+		articleIds = append(articleIds, list[i].ArticleId)
+	}
+	// 报告关联产业信息
+	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 {
+			err = errors.New("GetIndustrialListByarticleId" + 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,
+				ChartPermissionId:      v.ChartPermissionId,
+			})
+		}
+	}
+	for k, v := range list {
+		if len(industryMap[v.ArticleId]) > 0 {
+			list[k].List = industryMap[v.ArticleId]
+		} else {
+			list[k].List = make([]*models.IndustrialManagementIdInt, 0)
+		}
+	}
+
 	if len(list) == 0 {
 		list = make([]*models.ArticleListResp, 0)
 	}