ziwen 2 年 前
コミット
06b69565f9
3 ファイル変更263 行追加79 行削除
  1. 181 79
      controllers/report.go
  2. 75 0
      models/report.go
  3. 7 0
      models/tactics.go

+ 181 - 79
controllers/report.go

@@ -387,6 +387,14 @@ func (this *ReportController) ArticleCategoryList() {
 	//	br.ErrMsg = "获取信息失败,Err:" + err.Error()
 	//	return
 	//}
+
+	//时间线
+	timeLineItem := models.IndustrialToArticleCategoryRep{
+		CategoryId:    999,
+		MatchTypeName: "时间线",
+	}
+	list = append(list, &timeLineItem)
+
 	resp := new(models.IndustrialToArticleCategoryListRep)
 	resp.List = list
 	resp.LayoutTime = utils.TimeRemoveHms(detail.LayoutTime)
@@ -434,7 +442,7 @@ func (this *ReportController) List() {
 	startSize = paging.StartIndex(currentIndex, pageSize)
 	var pars []interface{}
 	var total int
-	resp := new(models.TacticsListResp)
+
 	page := paging.GetPaging(currentIndex, pageSize, total)
 
 	if categoryId < 1 {
@@ -445,92 +453,186 @@ func (this *ReportController) List() {
 		br.Msg = "请输入产业ID"
 		return
 	}
-	//获取该产业下所对应的行业图片
-	detail, errCategory := models.GetdetailByCategoryIdOne(categoryId)
-	if errCategory != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
-		return
-	}
-	//对应行业的图片
-	detailChartPermissionUrl, err := models.GetConfigByCode("category_chart_permissionimg_url")
-	if err != nil {
-		br.Msg = "获取数据失败"
-		br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
-		return
-	}
-	chartPermissionUrlList := strings.Split(detailChartPermissionUrl.ConfigValue, "{|}")
-	mapChartPermission := make(map[string]string)
-	var permissionName string
-	var imgUrlChartPermission string
-	for _, v := range chartPermissionUrlList {
-		vslice := strings.Split(v, "_")
-		permissionName = vslice[0]
-		imgUrlChartPermission = vslice[len(vslice)-1]
-		mapChartPermission[permissionName] = imgUrlChartPermission
-	}
-
-	total, err = models.GetReportIndustrialCount(categoryId, industrialManagementId)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
-		return
-	}
-	page = paging.GetPaging(currentIndex, pageSize, total)
-	list, err := models.GetReportIndustrialList(pars, categoryId, industrialManagementId, uid, startSize, pageSize)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
-		return
-	}
-	//对应分类的所图片
-	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 categoryIdStr string
-	var imgUrlChart string
-	for _, v := range categoryUrlList {
-		vslice := strings.Split(v, "_")
-		categoryIdStr = vslice[0]
-		imgUrlChart = vslice[len(vslice)-1]
-		mapCategoryUrl[categoryIdStr] = imgUrlChart
-	}
-	lenList := len(list)
-	for i := 0; i < lenList; i++ {
-		item := list[i]
-		list[i].Body, _ = services.GetReportContentTextSub(item.Body)
-		//list[i].Abstract = html.UnescapeString(item.Abstract)
-		list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
-	}
+	if categoryId != 999 {
+		resp := new(models.TacticsListResp)
+		//获取该产业下所对应的行业图片
+		detail, errCategory := models.GetdetailByCategoryIdOne(categoryId)
+		if errCategory != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
+			return
+		}
+		//对应行业的图片
+		detailChartPermissionUrl, err := models.GetConfigByCode("category_chart_permissionimg_url")
+		if err != nil {
+			br.Msg = "获取数据失败"
+			br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
+			return
+		}
+		chartPermissionUrlList := strings.Split(detailChartPermissionUrl.ConfigValue, "{|}")
+		mapChartPermission := make(map[string]string)
+		var permissionName string
+		var imgUrlChartPermission string
+		for _, v := range chartPermissionUrlList {
+			vslice := strings.Split(v, "_")
+			permissionName = vslice[0]
+			imgUrlChartPermission = vslice[len(vslice)-1]
+			mapChartPermission[permissionName] = imgUrlChartPermission
+		}
 
-	for k, v := range list {
-		if v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishDate)) {
-			list[k].IsRed = true
+		total, err = models.GetReportIndustrialCount(categoryId, industrialManagementId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
+			return
 		}
-		if v.VideoUrl != "" {
-			list[k].IsHaveVideo = true
+		page = paging.GetPaging(currentIndex, pageSize, total)
+		list, err := models.GetReportIndustrialList(pars, categoryId, industrialManagementId, uid, startSize, pageSize)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
+			return
 		}
-		list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
+		//对应分类的所图片
+		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 categoryIdStr string
+		var imgUrlChart string
+		for _, v := range categoryUrlList {
+			vslice := strings.Split(v, "_")
+			categoryIdStr = vslice[0]
+			imgUrlChart = vslice[len(vslice)-1]
+			mapCategoryUrl[categoryIdStr] = imgUrlChart
+		}
+		lenList := len(list)
+		for i := 0; i < lenList; i++ {
+			item := list[i]
+			list[i].Body, _ = services.GetReportContentTextSub(item.Body)
+			//list[i].Abstract = html.UnescapeString(item.Abstract)
+			list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
+		}
+
+		for k, v := range list {
+			if v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishDate)) {
+				list[k].IsRed = true
+			}
+			if v.VideoUrl != "" {
+				list[k].IsHaveVideo = true
+			}
+			list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
 
-		if mapCategoryUrl[v.CategoryId] == "" {
-			if detail.ChartPermissionId == utils.YI_YAO_ID {
-				list[k].ImgUrlPc = utils.YI_YAO_QI_TA
+			if mapCategoryUrl[v.CategoryId] == "" {
+				if detail.ChartPermissionId == utils.YI_YAO_ID {
+					list[k].ImgUrlPc = utils.YI_YAO_QI_TA
+				}
 			}
 		}
+
+		resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
+		resp.List = list
+		resp.Paging = page
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
+	} else {
+		////获取该产业下所对应的行业图片
+		//detail, errCategory := models.GetdetailByCategoryIdOne(categoryId)
+		//if errCategory != nil {
+		//	br.Msg = "获取信息失败"
+		//	br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
+		//	return
+		//}
+		////对应行业的图片
+		//detailChartPermissionUrl, err := models.GetConfigByCode("category_chart_permissionimg_url")
+		//if err != nil {
+		//	br.Msg = "获取数据失败"
+		//	br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
+		//	return
+		//}
+		//chartPermissionUrlList := strings.Split(detailChartPermissionUrl.ConfigValue, "{|}")
+		//mapChartPermission := make(map[string]string)
+		//var permissionName string
+		//var imgUrlChartPermission string
+		//for _, v := range chartPermissionUrlList {
+		//	vslice := strings.Split(v, "_")
+		//	permissionName = vslice[0]
+		//	imgUrlChartPermission = vslice[len(vslice)-1]
+		//	mapChartPermission[permissionName] = imgUrlChartPermission
+		//}
+
+		total, err := models.GetTimeLineReportIndustrialCount(industrialManagementId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
+			return
+		}
+		page = paging.GetPaging(currentIndex, pageSize, total)
+		list, err := models.GetTimeLineReportIndustrialList(industrialManagementId, startSize, pageSize)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
+			return
+		}
+		////对应分类的所图片
+		//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 categoryIdStr string
+		//var imgUrlChart string
+		//for _, v := range categoryUrlList {
+		//	vslice := strings.Split(v, "_")
+		//	categoryIdStr = vslice[0]
+		//	imgUrlChart = vslice[len(vslice)-1]
+		//	mapCategoryUrl[categoryIdStr] = imgUrlChart
+		//}
+
+		//lenList := len(list)
+		//for i := 0; i < lenList; i++ {
+		//	item := list[i]
+		//	list[i].Content, _ = services.GetReportContentTextSub(item.Content)
+		//	//list[i].Abstract = html.UnescapeString(item.Abstract)
+		//	list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
+		//}
+
+		//for k, v := range list {
+		//	if v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishDate)) {
+		//		list[k].IsRed = true
+		//	}
+		//	if v.VideoUrl != "" {
+		//		list[k].IsHaveVideo = true
+		//	}
+		//	list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
+		//
+		//	if mapCategoryUrl[v.CategoryId] == "" {
+		//		if detail.ChartPermissionId == utils.YI_YAO_ID {
+		//			list[k].ImgUrlPc = utils.YI_YAO_QI_TA
+		//		}
+		//	}
+		//}
+
+		//resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
+
+		resp := new(models.TimeLineReportListResp)
+		resp.List = list
+		resp.Paging = page
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
 	}
 
-	resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
-	resp.List = list
-	resp.Paging = page
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
 }
 
 // @Title 置顶/取消置顶

+ 75 - 0
models/report.go

@@ -804,3 +804,78 @@ func GetReportPvBillboardList(pars []interface{}, condition string) (items []*Ar
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+//获取产业报告+晨会点评数量
+func GetTimeLineReportIndustrialCount(industrialManagementId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT SUM(count) AS count FROM (
+SELECT
+	COUNT( 1 ) count 
+FROM
+	cygx_article AS a
+	INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.article_id = a.article_id 
+WHERE
+	a.publish_status = 1 
+	AND a.is_class = 1 
+	AND man_g.industrial_management_id = ?
+	UNION 
+	SELECT
+	COUNT( 1 ) count 
+	FROM
+	cygx_morning_meeting_review_chapter AS mmc
+	INNER JOIN cygx_morning_meeting_reviews AS mm
+	WHERE
+	mm.id = mmc.meeting_id
+	AND mm.status = 1
+	AND mmc.industry_id = ? ) AS t `
+	err = o.Raw(sql, industrialManagementId, industrialManagementId).QueryRow(&count)
+	return
+}
+
+type TimeLineReportItem struct {
+	Id          int    `description:"文章或晨报点评id"`
+	Title       string `description:"标题"`
+	PublishTime string `description:"发布时间"`
+	Content     string `description:"内容"`
+}
+
+//获取产业报告+晨会点评列表
+func GetTimeLineReportIndustrialList(industrialManagementId, startSize, pageSize int) (items []*TimeLineReportItem, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+	* 
+FROM
+	(
+	SELECT
+		a.article_id AS id,
+		a.title,
+		a.publish_date AS publish_time,
+		'' AS content 
+	FROM
+		cygx_article AS a
+		INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.article_id = a.article_id 
+	WHERE
+		a.publish_status = 1 
+		AND a.is_class = 1 
+		AND man_g.industrial_management_id = ? UNION
+	SELECT
+		mmc.id,
+		'' AS title,
+		mm.publish_time,
+		mmc.content 
+	FROM
+		cygx_morning_meeting_review_chapter AS mmc
+		INNER JOIN cygx_morning_meeting_reviews AS mm 
+	WHERE
+		mm.id = mmc.meeting_id 
+		AND mm.STATUS = 1 
+		AND mmc.industry_id = ? 
+	) AS t 
+`
+	sql += `  GROUP BY
+	t.id 
+ORDER BY
+	t.publish_time DESC LIMIT ?,? `
+	_, err = o.Raw(sql, industrialManagementId, industrialManagementId, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 7 - 0
models/tactics.go

@@ -129,3 +129,10 @@ func GetReportTacticsList(condition string, pars []interface{}, userId, startSiz
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 }
+
+type TimeLineReportListResp struct {
+	Paging           *paging.PagingItem
+	MatchTypeName    string `description:"匹配类型"`
+	CategoryImgUrlPc string `description:"图片"`
+	List             []*TimeLineReportItem
+}