Эх сурвалжийг харах

产业下所关联的文章分类列表

xingzai 2 жил өмнө
parent
commit
8fcda725cb

+ 76 - 2
controllers/report.go

@@ -132,8 +132,8 @@ func (this *MobileReportController) TradeList() {
 // @Title 产业报告分类列表接口
 // @Description 获取产业报告分类列表接口
 // @Param   ChartPermissionId   query   int  true       "分类ID"
-// @Param   DeepCover   query   string  false       "是否选择深度覆盖,1是,0否 不填默认为0"
-// @Param   RecommendFocus   query   string  false       "是否选择推荐关注,1是,0否 不填默认为0"
+// @Param   DeepCover   query   int  false       "是否选择深度覆盖,1是,0否 不填默认为0"
+// @Param   RecommendFocus   query   int  false       "是否选择推荐关注,1是,0否 不填默认为0"
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Success 200 {object} models.IndustrialManagementList
@@ -323,6 +323,80 @@ func (this *MobileReportController) IndustryList() {
 	br.Data = resp
 }
 
+// @Title 产业下所关联的文章分类列表
+// @Description 产业下所关联的文章分类列表接口
+// @Param   IndustrialManagementId   query   int  true       "产业ID"
+// @Success 200 {object} models.IndustrialToArticleCategoryListRep
+// @router /toArticleCategoryList [get]
+func (this *MobileReportController) ArticleCategoryList() {
+	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
+	}
+	uid := user.UserId
+	industrialManagementId, _ := this.GetInt("IndustrialManagementId")
+	if industrialManagementId < 1 {
+		br.Msg = "请输入分类ID"
+		return
+	}
+
+	detail, err := models.GetIndustrialManagementDetail(industrialManagementId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取信息失败,Err:" + err.Error()
+		return
+	}
+	list, err := models.IndustrialToArticleCategory(industrialManagementId, detail.ChartPermissionId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+		return
+	}
+
+	for k, v := range list {
+		recordCount, err := models.IndustrialUserRecordArticleCount(uid, industrialManagementId, v.CategoryId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+			return
+		}
+		Newdetail, err := models.GetNewIndustrialUserRecordArticle(industrialManagementId, v.CategoryId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取信息失败,Err:" + err.Error()
+			return
+		}
+		if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
+			list[k].IsRed = true
+		}
+	}
+
+	//标的列表
+	industrialSubjectList, err := models.GetIndustrialSubjectAll(industrialManagementId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+		return
+	}
+	resp := new(models.IndustrialToArticleCategoryListRep)
+	resp.List = list
+	resp.ListSubject = industrialSubjectList
+	resp.LayoutTime = utils.TimeRemoveHms(detail.LayoutTime)
+	resp.IndustryName = detail.IndustryName
+	resp.IndustrialManagementId = industrialManagementId
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 // @Title 根据行业分类获取文章列表
 // @Description根据行业分类获取文章列表接口
 // @Param   PageSize   query   int  true       "每页数据条数"

+ 40 - 1
models/report.go

@@ -30,7 +30,6 @@ type TacticsListResp struct {
 	MatchTypeName    string `description:"匹配类型"`
 	CategoryImgUrlPc string `description:"图片"`
 	List             []*HomeArticle
-	ListSubject      []*IndustrialSubjectResp
 }
 
 //报告搜索start
@@ -144,3 +143,43 @@ func GetThemeHeatSubjectList(condition string) (items []*IndustrialSubject, err
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 } //end
+
+//产业下所关联的文章分类列表
+func IndustrialToArticleCategory(industrialManagementId, chartPermissionId int) (items []*IndustrialToArticleCategoryRep, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT map.match_type_name,map.category_id
+    FROM cygx_report_mapping AS map
+	INNER JOIN cygx_article AS art ON art.category_id = map.category_id
+	INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.article_id = art.article_id
+	WHERE map.report_type = 2
+	AND map.is_report = 1
+    AND art.is_report = 1
+    AND art.publish_status = 1
+	AND man_g.industrial_management_id =?
+	AND map.chart_permission_id = ?
+	GROUP BY map.match_type_name`
+	_, err = o.Raw(sql, industrialManagementId, chartPermissionId).QueryRows(&items)
+	return
+}
+
+//判断用户是否阅读该产业下,某一分类的文章
+func IndustrialUserRecordArticleCount(userId, industrialManagementId, categoryId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+	COUNT(1) count
+FROM
+	cygx_article_history_record 
+WHERE
+	article_id = ( SELECT article_id FROM cygx_article WHERE article_id IN (SELECT article_id FROM cygx_industrial_article_group_management WHERE industrial_management_id = ? ) AND category_id = ? ORDER BY publish_date DESC LIMIT 0, 1 ) 
+	AND user_id = ? `
+	err = o.Raw(sql, industrialManagementId, categoryId, userId).QueryRow(&count)
+	return
+}
+
+//获取最新文章
+func GetNewIndustrialUserRecordArticle(industrialManagementId, categoryId int) (item *ArticleDetail, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM cygx_article WHERE article_id IN (SELECT article_id FROM cygx_industrial_article_group_management WHERE industrial_management_id = ? ) AND category_id = ? ORDER BY publish_date DESC LIMIT 0, 1`
+	err = o.Raw(sql, industrialManagementId, categoryId).QueryRow(&item)
+	return
+}

+ 2 - 1
models/report_mapping.go

@@ -106,12 +106,13 @@ type IndustrialToArticleCategoryListRep struct {
 	IndustryName           string `description:"产业名称"`
 	IndustrialManagementId int    `description:"产业D"`
 	List                   []*IndustrialToArticleCategoryRep
+	ListSubject            []*IndustrialSubject
 }
 
 //通过分类ID获取详情
 func GetdetailByCategoryId(categoryId int) (item *ReportMapping, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_report_mapping WHERE report_type=1 AND category_id=? `
+	sql := `SELECT * FROM cygx_report_mapping WHERE  category_id=? LIMIT 1 `
 	err = o.Raw(sql, categoryId).QueryRow(&item)
 	return
 }

+ 9 - 0
routers/commentsRouter.go

@@ -124,6 +124,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"],
+        beego.ControllerComments{
+            Method: "ArticleCategoryList",
+            Router: `/toArticleCategoryList`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"],
         beego.ControllerComments{
             Method: "TradeList",