Browse Source

fix:卓创红期父级分类显示指标

zqbao 7 months ago
parent
commit
97d2dd980a

+ 15 - 2
controllers/data_manage/sci_hq_data.go

@@ -412,14 +412,27 @@ func (this *SciHqDataController) IndexPageList() {
 		}
 		indexList = tmpIndexList
 	} else {
-		tmpTotal, err := data_manage.GetSciHqIndexCountByClassifyId(classifyId)
+		var classifyIds []int
+		if classifyId > 0 {
+			tmpClassifyIds, err := data_manage.GetSciHqChildClassifyIdsById(classifyId)
+			if err != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
+				return
+			}
+			if len(tmpClassifyIds) > 0 {
+				classifyIds = append(classifyIds, tmpClassifyIds...)
+			}
+		}
+		classifyIds = append(classifyIds, classifyId)
+		tmpTotal, err := data_manage.GetSciHqIndexCountByClassifyId(classifyIds)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
 			return
 		}
 		total = tmpTotal
-		tmpIndexList, err := data_manage.GetSciHqIndexByClassifyId(classifyId, startSize, pageSize)
+		tmpIndexList, err := data_manage.GetSciHqIndexByClassifyId(classifyIds, startSize, pageSize)
 		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取指标信息失败,Err:" + err.Error()

+ 8 - 0
models/data_manage/base_from_sci_hq_classify.go

@@ -103,6 +103,14 @@ func GetSciHqClassifyById(classifyId int) (item *BaseFromSciHqClassify, err erro
 	return
 }
 
+// GetSciHqChildClassifyById 通过分类id获取子分类
+func GetSciHqChildClassifyIdsById(classifyId int) (items []int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT classify_id FROM base_from_sci_hq_classify WHERE parent_id=? `
+	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	return
+}
+
 // GetSciHqClassifyListByIds 通过分类id获取分类列表
 func GetSciHqClassifyListByIds(classifyIds []int) (items []*BaseFromSciHqClassify, err error) {
 	if len(classifyIds) == 0 {

+ 9 - 6
models/data_manage/base_from_sci_hq_index.go

@@ -137,22 +137,25 @@ func GetSciHqIndexCountByClassifyIds(classifyIds []int) (count int, err error) {
 }
 
 // GetSciHqIndexByClassifyId 根据分类id获取卓创红期指标列表
-func GetSciHqIndexByClassifyId(classifyId, startSize, pageSize int) (items []*BaseFromSciHqIndexView, err error) {
+func GetSciHqIndexByClassifyId(classifyIds []int, startSize, pageSize int) (items []*BaseFromSciHqIndexView, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT b.*, e.edb_info_id,
 	CASE WHEN e.edb_info_id IS NULL THEN 0 ELSE 1 END AS edb_exist
 	FROM base_from_sci_hq_index AS b
 	LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=88
-	WHERE b.classify_id = ? ORDER BY b.sort ASC LIMIT ?,? `
-	_, err = o.Raw(sql, classifyId, startSize, pageSize).QueryRows(&items)
+	WHERE b.classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) ORDER BY b.sort ASC LIMIT ?,? `
+	_, err = o.Raw(sql, classifyIds, startSize, pageSize).QueryRows(&items)
 	return
 }
 
 // GetSciHqIndexCountByClassifyId 根据分类id获取卓创红期指标数量
-func GetSciHqIndexCountByClassifyId(classifyId int) (count int, err error) {
+func GetSciHqIndexCountByClassifyId(classifyIds []int) (count int, err error) {
+	if len(classifyIds) == 0 {
+		return
+	}
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(*) AS count FROM base_from_sci_hq_index WHERE classify_id = ? `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	sql := ` SELECT COUNT(*) AS count FROM base_from_sci_hq_index WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) `
+	err = o.Raw(sql, classifyIds).QueryRow(&count)
 	return
 }