Browse Source

获取图表上的指标数据

xyxie 1 week ago
parent
commit
b55e679849
2 changed files with 43 additions and 2 deletions
  1. 19 2
      controllers/business_chart.go
  2. 24 0
      models/data_manage/eta_business_chart_permission.go

+ 19 - 2
controllers/business_chart.go

@@ -159,6 +159,11 @@ func (this *BusinessChartController) ChartEdbDataList() {
 		this.ServeJSON()
 	}()
 
+	businessCode := this.GetString("BusinessCode")
+	if businessCode == "" {
+		br.Msg = "商家编码不允许为空"
+		return
+	}
 	edbInfoCode := this.GetString("EdbCode")
 	if edbInfoCode == "" {
 		br.Msg = "参数有误"
@@ -175,8 +180,15 @@ func (this *BusinessChartController) ChartEdbDataList() {
 		br.ErrMsg = "ChartEdbDataList GetItemByEdbCode err: " + e.Error()
 		return
 	}
-
-	if edbInfo.EdbType == 1 { //禁止查询基础指标的数据
+	// 判断这个指标ID是否是用于画图的指标ID
+	chartOb := new(data_manage.EtaBusinessChartPermission)
+	chartCount, err := chartOb.GetChartCountByBusinessCodeAndEdbInfoId(businessCode, edbInfo.EdbInfoId)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "ChartEdbDataList GetChartInfoByEdbInfoId err: " + err.Error()
+		return
+	}
+	if chartCount == 0 { //禁止图表之外的指标数据
 		br.Data = make([]*data_manage.EdbDataList, 0)
 		br.Ret = 200
 		br.Msg = "获取成功"
@@ -216,6 +228,11 @@ func (this *BusinessChartController) TraceEdbInfo() {
 		br.ErrMsg = "参数错误"
 		return
 	}
+	businessCode := this.GetString("BusinessCode")
+	if businessCode == "" {
+		br.Msg = "商家编码不允许为空"
+		return
+	}
 
 	resp, err := data.TraceEdbInfoByEdbInfoId(edbInfoId, edbInfoCode)
 	if err != nil {

+ 24 - 0
models/data_manage/eta_business_chart_permission.go

@@ -158,4 +158,28 @@ type BusinessChartDetailResp struct {
 	UniqueCode string	
 	Description []string
 	EdbInfoList []TraceEdbInfoMoreResp
+}
+
+// GetChartListByBusinessCode 根据商家编码获取图表列表
+func (m *EtaBusinessChartPermission) GetChartCountByBusinessCodeAndEdbInfoId(businessCode string, edbInfoId int) (count int64, err error) {
+	if businessCode == "" {
+		return 0, fmt.Errorf("business code cannot be empty")
+	}
+
+	o := orm.NewOrmUsingDB("data")
+
+	// 构建SQL查询
+	sql := `
+		SELECT 
+			COUNT(DISTINCT p.chart_info_id)
+		FROM 
+			eta_business_chart_permission p
+		JOIN 
+			chart_edb_mapping c ON p.chart_info_id = c.chart_info_id
+		WHERE 
+			p.business_code = ? AND c.edb_info_id = ?
+	`
+
+	err = o.Raw(sql, businessCode, edbInfoId).QueryRow(&count)
+	return
 }