Procházet zdrojové kódy

Merge branch 'ETA_2.1.6' into debug

zwxi před 7 měsíci
rodič
revize
ac95d5666e

+ 20 - 7
controllers/data_manage/chart_info.go

@@ -4544,6 +4544,8 @@ func (this *ChartInfoController) ChartList() {
 		return
 	}
 
+	subClassify, _ := this.GetBool("SubClassify")
+
 	chartClassifyIdsStr := this.GetString("ChartClassifyIds")
 	chartClassifyIds := strings.Split(chartClassifyIdsStr, ",")
 
@@ -4572,14 +4574,25 @@ func (this *ChartInfoController) ChartList() {
 
 
 	if len(chartClassifyIds) > 0 {
-		chartClassifyId, err := data_manage.GetChartClassifyByIds(chartClassifyIds)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取图表信息失败"
-			br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
-			return
+		if !subClassify {
+			chartClassifyId, err := data_manage.GetChartClassifyByIdsNoSubClassify(chartClassifyIds)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取图表信息失败"
+				br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
+				return
+			}
+			condition += " AND chart_classify_id IN(" + chartClassifyId+ ") "
+			//pars = append(pars, chartClassifyId)
+		} else {
+			chartClassifyId, err := data_manage.GetChartClassifyByIds(chartClassifyIds)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取图表信息失败"
+				br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
+				return
+			}
+			condition += " AND chart_classify_id IN(" + chartClassifyId + ") "
+			//pars = append(pars, chartClassifyId)
 		}
-		condition += " AND chart_classify_id IN(" + chartClassifyId + ") "
-		//pars = append(pars, chartClassifyId)
 	}
 	if keyWord != "" {
 		condition += ` AND  ( chart_name LIKE '%` + keyWord + `%' OR chart_name_en LIKE '%` + keyWord + `%' )`

+ 12 - 0
models/data_manage/my_chart.go

@@ -989,3 +989,15 @@ FROM (
 	err = o.Raw(sql, chartClassifyIds, chartClassifyIds, chartClassifyIds).QueryRow(&chart_classify_ids)
 	return
 }
+
+func GetChartClassifyByIdsNoSubClassify(chartClassifyIds []string) (chart_classify_ids string, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT GROUP_CONCAT(DISTINCT t.chart_classify_id) AS chart_classify_ids
+FROM (
+    SELECT chart_classify_id
+    FROM chart_classify
+    WHERE chart_classify_id IN (` + utils.GetOrmInReplace(len(chartClassifyIds)) + `)
+) AS t;`
+	err = o.Raw(sql, chartClassifyIds).QueryRow(&chart_classify_ids)
+	return
+}