Browse Source

fix:添加获取图表关联配置接口

Roc 1 year ago
parent
commit
7d9511e9a9

+ 78 - 0
controllers/data_manage/cross_variety/chart_info.go

@@ -592,6 +592,84 @@ func (c *ChartInfoController) Detail() {
 	br.Data = resp
 }
 
+// Relation
+// @Title 获取图表的关联信息
+// @Description 获取图表的关联信息
+// @Param   ChartInfoId   query   int  true       "图表id"
+// @Success 200 {object} data_manage.ChartInfoDetailResp
+// @router /chart_info/relation [get]
+func (c *ChartInfoController) Relation() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	chartInfoId, _ := c.GetInt("ChartInfoId")
+	if chartInfoId <= 0 {
+		br.Msg = "参数有误"
+		return
+	}
+
+	var err error
+	chartInfo := new(data_manage.ChartInfoView)
+	chartInfo, err = data_manage.GetChartInfoViewById(chartInfoId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "图被删除,请刷新页面"
+			br.ErrMsg = "图被删除,请刷新页面,Err:" + err.Error()
+			return
+		}
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+		return
+	}
+
+	if chartInfo.ExtraConfig == `` {
+		br.Msg = "图表配置信息异常"
+		br.ErrMsg = "图表配置信息异常"
+		br.IsSendEmail = false
+		return
+	}
+	var config request.ChartConfigReq
+	err = json.Unmarshal([]byte(chartInfo.ExtraConfig), &config)
+	if err != nil {
+		br.Msg = "解析跨品种分析配置失败"
+		br.ErrMsg = "解析跨品种分析配置失败,Err:" + err.Error()
+		return
+	}
+
+	tagList, err := cross_varietyModels.GetTagListByIdList([]int{config.TagX, config.TagY})
+	if err != nil {
+		br.Msg = "获取标签信息失败"
+		br.ErrMsg = "获取标签信息失败,Err:" + err.Error()
+		return
+	}
+
+	// 获取品种列表
+	varietyList, err := cross_varietyModels.GetVarietyListByIdList(config.VarietyList)
+	if err != nil {
+		br.Msg = "获取品种信息失败"
+		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+		return
+	}
+	resp := response.ChartRelationResp{
+		ChartInfo:   chartInfo,
+		TagList:     tagList,
+		VarietyList: varietyList,
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}
+
 // Copy
 // @Title 复制并新增图表接口
 // @Description 新增图表接口

+ 21 - 0
models/data_manage/cross_variety/chart_tag_variety.go

@@ -237,3 +237,24 @@ func GetCountByEdbInfoId(edbInfoId int) (total int, err error) {
 
 	return
 }
+
+// GetChartVarietyItemListByTagIdList
+// @Description: 根据标签id列表获取所有绑定的品种列表
+// @author: Roc
+// @datetime 2023-11-22 10:44:35
+// @param chartTagId int
+// @param chartVarietyId int
+// @return items []*ChartVariety
+// @return err error
+func GetChartVarietyItemListByTagIdList(chartTagIdList []int) (items []*ChartVariety, err error) {
+	num := len(chartTagIdList)
+	if num <= 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT b.* FROM chart_tag_variety a 
+         join chart_variety b on a.chart_variety_id=b.chart_variety_id WHERE chart_tag_id in (` + utils.GetOrmInReplace(num) + `) `
+	_, err = o.Raw(sql, chartTagIdList).QueryRows(&items)
+
+	return
+}

+ 12 - 1
models/data_manage/cross_variety/response/chart.go

@@ -1,6 +1,9 @@
 package response
 
-import "eta/eta_api/models/data_manage"
+import (
+	"eta/eta_api/models/data_manage"
+	"eta/eta_api/models/data_manage/cross_variety"
+)
 
 // ChartPreviewResp
 // @Description: 图表预览返回
@@ -8,3 +11,11 @@ type ChartPreviewResp struct {
 	EdbInfoList []*data_manage.ChartEdbInfoMapping
 	DataResp    interface{} `description:"图表数据,根据图的类型而定的,没有确定的数据格式"`
 }
+
+// ChartRelationResp
+// @Description: 图表关联配置返回
+type ChartRelationResp struct {
+	ChartInfo   *data_manage.ChartInfoView
+	TagList     []*cross_variety.ChartTag
+	VarietyList []*cross_variety.ChartVariety
+}

+ 9 - 0
routers/commentsRouter.go

@@ -268,6 +268,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "Relation",
+            Router: `/chart_info/relation`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"],
         beego.ControllerComments{
             Method: "SearchByEs",