Browse Source

no message

xingzai 2 years ago
parent
commit
a2e488f0e4
3 changed files with 104 additions and 10 deletions
  1. 53 10
      controllers/report.go
  2. 38 0
      models/industrial_management.go
  3. 13 0
      models/report_mapping.go

+ 53 - 10
controllers/report.go

@@ -242,16 +242,47 @@ func (this *MobileReportController) IndustryList() {
 	} else {
 		orderSrt = "man.recommended_index DESC,update_time DESC"
 	}
-	if ChartPermissionId == 0 {
-		ChartPermissionId = 20
-	}
 
-	list, err = models.GetIndustrialManagementAll(uid, condition, orderSrt, startSize, pageSize, isBillboard)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
-		return
+	if isBillboard {
+		// 查询有已归类行业报告的行业IDs
+		activeIndustryIds, e := models.GetActiveArticleIndustryIds()
+		if e != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取已归类行业失败, Err:" + e.Error()
+			return
+		}
+		activeIndustryLen := len(activeIndustryIds)
+		//topNum := pageSize
+		condition = ""
+		var parsBd []interface{}
+		if ChartPermissionId > 0 {
+			condition += ` 	AND man.chart_permission_id = ?  `
+			parsBd = append(parsBd, ChartPermissionId)
+		}
+		if activeIndustryLen > 0 {
+			condition += ` AND man.industrial_management_id IN (` + utils.GetOrmInReplace(activeIndustryLen) + `)`
+			parsBd = append(parsBd, activeIndustryIds)
+		}
+		nowTime := time.Now().Local()
+		startTime := nowTime.AddDate(0, -1, 0)
+		endTime := nowTime.AddDate(0, 0, -1)
+		condition += ` AND idf.create_time BETWEEN ? AND ?`
+		parsBd = append(parsBd, startTime, endTime)
+		list, e = models.GetTopIndustryFollowData(0, pageSize, condition, parsBd)
+		if e != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取关注度最高的产业数据失败, Err:" + e.Error()
+			return
+		}
+	} else {
+		list, err = models.GetIndustrialManagementAll(uid, condition, orderSrt, startSize, pageSize, isBillboard)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+			return
+		}
 	}
+
 	list, err = services.HandleIndustryList(list, user)
 	if err != nil {
 		br.Msg = "获取信息失败"
@@ -477,8 +508,20 @@ func (this *MobileReportController) List() {
 			imgUrlChart = vslice[len(vslice)-1]
 			mapCategoryUrl[categoryIdStr] = imgUrlChart
 		}
-		condition += ` AND category_id_two=? `
-		pars = append(pars, categoryId)
+		//condition += ` AND category_id_two=? `
+		//pars = append(pars, categoryId)
+
+		categoryIdSet, errCategory := models.GetdetailByCategoryIdSet(categoryId)
+		if errCategory != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
+			return
+		}
+		if categoryIdSet != "" {
+			condition = ` AND category_id IN(` + categoryIdSet + `)`
+		} else {
+			condition = ` AND category_id IN(` + strconv.Itoa(categoryId) + `)`
+		}
 
 		if industrialManagementId > 0 {
 			industrialManageentList, err := models.GetIndustrialArticleGroupManagementByIndustrialManagementId(industrialManagementId)

+ 38 - 0
models/industrial_management.go

@@ -303,3 +303,41 @@ func GetTopOneMonthArtReadNumIndustry(condition string, pars []interface{}) (ite
 	err = orm.NewOrm().Raw(sql, pars).QueryRow(&item)
 	return
 }
+
+// GetTopIndustryFollowData 获取关注度最高的产业关注数据
+func GetTopIndustryFollowData(startSize, pageSize int, condition string, pars []interface{}) (list []*IndustrialManagement, err error) {
+	sql := `SELECT
+				COUNT(1) AS one_month_follow_num,
+				man.*
+			FROM
+				cygx_industry_fllow AS idf
+			JOIN cygx_industrial_management AS man ON idf.industrial_management_id = man.industrial_management_id
+			WHERE 1 = 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` GROUP BY
+				idf.industrial_management_id
+			ORDER BY
+				one_month_follow_num DESC
+			LIMIT ?,?`
+	_, err = orm.NewOrm().Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	return
+}
+
+// GetActiveArticleIndustryIds 获取有已归类行业报告的行业IDs
+func GetActiveArticleIndustryIds() (ids []int, err error) {
+	sql := `SELECT
+				man.industrial_management_id
+			FROM
+				cygx_industrial_management AS man
+			JOIN cygx_report_mapping AS re ON re.chart_permission_id = man.chart_permission_id
+			JOIN cygx_industrial_article_group_management AS man_g ON man_g.industrial_management_id = man.industrial_management_id
+			JOIN cygx_article AS art ON art.article_id = man_g.article_id
+			WHERE
+				1 = 1 AND re.report_type = 2 AND art.is_report = 1 AND art.is_class = 1 AND art.publish_status = 1
+			GROUP BY
+				man.industrial_management_id`
+	_, err = orm.NewOrm().Raw(sql).QueryRows(&ids)
+	return
+}

+ 13 - 0
models/report_mapping.go

@@ -143,6 +143,19 @@ func GetdetailByCategoryIdOne(categoryId int) (item *ReportMapping, err error) {
 	return
 }
 
+//通过分类ID获取详情
+func GetdetailByCategoryIdSet(categoryId int) (ids string, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+		GROUP_CONCAT( DISTINCT category_id SEPARATOR ',' ) AS ids 
+	FROM
+		cygx_report_mapping 
+	WHERE
+		category_id_set = ? `
+	err = o.Raw(sql, categoryId).QueryRow(&ids)
+	return
+}
+
 //判断该分类下最新的文章用户是否阅读
 func CheckThisCategoryNewArticleIsRead(uid, categoryId int) (count int, err error) {
 	o := orm.NewOrm()