Răsfoiți Sursa

feat:跨品种分析图表详情接口新增返回指标信息;品种、标签删除接口新增是否关联图表检测

Roc 1 an în urmă
părinte
comite
b40ddc0619

+ 15 - 36
controllers/data_manage/cross_variety/chart_info.go

@@ -6,6 +6,7 @@ import (
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/data_manage/cross_variety/request"
+	"eta/eta_api/models/data_manage/cross_variety/response"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/cross_variety"
@@ -272,7 +273,7 @@ func (c *ChartInfoController) Preview() {
 	chartInfo.ChartType = utils.CHART_SOURCE_CROSS_HEDGING
 
 	// 获取图表x轴y轴
-	_, dataResp, err, errMsg, isSendEmail := cross_variety.GetChartData(0, req)
+	edbInfoList, dataResp, err, errMsg, isSendEmail := cross_variety.GetChartData(0, req)
 	if err != nil {
 		br.IsSendEmail = isSendEmail
 		br.Msg = "获取失败"
@@ -282,7 +283,13 @@ func (c *ChartInfoController) Preview() {
 		br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
 		return
 	}
-	br.Data = dataResp
+
+	resp := response.ChartPreviewResp{
+		EdbInfoList: edbInfoList,
+		DataResp:    dataResp,
+	}
+	//resp.EdbInfoList = edbList
+	br.Data = resp
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -516,7 +523,7 @@ func (c *ChartInfoController) Detail() {
 	//config.TagX =
 
 	// 获取图表x轴y轴
-	_, dataResp, err, errMsg, isSendEmail := cross_variety.GetChartData(0, config)
+	edbList, dataResp, err, errMsg, isSendEmail := cross_variety.GetChartData(0, config)
 	if err != nil {
 		br.IsSendEmail = isSendEmail
 		br.Msg = "获取失败"
@@ -577,6 +584,7 @@ func (c *ChartInfoController) Detail() {
 	resp := new(data_manage.ChartInfoDetailResp)
 	resp.ChartInfo = chartInfo
 	resp.DataResp = dataResp
+	resp.EdbInfoList = edbList
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -908,42 +916,12 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 		errMsg = "解析跨品种分析配置失败,Err:" + err.Error()
 		return
 	}
-
-	//mappingList, err := cross_varietyModel.GetChartVarietyMappingList(chartInfo.ChartInfoId)
-	//if err != nil {
-	//	br.Msg = "获取品种失败"
-	//	br.ErrMsg = "获取品种失败,Err:" + err.Error()
-	//	return
-	//}
-	// 获取跨品种分析配置
-	//chartInfoCrossVariety, err := cross_varietyModel.GetChartInfoCrossVarietyByChartInfoId(chartInfo.ChartInfoId)
-	//if err != nil {
-	//	br.Msg = "获取跨品种分析配置失败"
-	//	br.ErrMsg = "获取跨品种分析配置失败,Err:" + err.Error()
-	//	return
-	//}
-	//
-	//varietyIdList := make([]int,0)
-	//for _,v:=range mappingList{
-	//	varietyIdList = append(varietyIdList,v.ChartVarietyId)
-	//}
-	//config := request.ChartConfigReq{
-	//	TagX:           chartInfoCrossVariety.ChartXTagId,
-	//	TagY:           chartInfoCrossVariety.ChartYTagId,
-	//	CalculateValue: chartInfoCrossVariety.CalculateValue,
-	//	CalculateUnit:  chartInfoCrossVariety.CalculateUnit,
-	//	DateConfigList: config.DateConfigList,
-	//	VarietyList:    varietyIdList,
-	//}
-	//config.TagX =
-
 	// 获取图表x轴y轴
-	_, dataResp, err, msg, _ := cross_variety.GetChartData(0, config)
+	edbList, dataResp, err, msg, _ := cross_variety.GetChartData(0, config)
 	if err != nil {
 		errMsg = "获取图表,指标信息失败,Err:" + err.Error()
 		return
 	}
-
 	if chartInfoId > 0 && chartInfo != nil {
 		//判断是否加入我的图库
 		{
@@ -974,18 +952,19 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 	//chartInfo.IsEnChart = data.CheckIsEnChart(chartInfo.ChartNameEn, edbList[0:1], chartInfo.Source, chartInfo.ChartType)
 	//chartInfo.UnitEn = edbInfoMappingA.UnitEn
 
-	isSaveAs := true
+	//isSaveAs := true
 	// 另存为
 	chartInfo.Button = data_manage.ChartViewButton{
 		IsEdit:    chartInfo.IsEdit,
 		IsEnChart: chartInfo.IsEnChart,
 		IsAdd:     chartInfo.IsAdd,
-		IsCopy:    isSaveAs,
+		IsCopy:    true,
 		IsSetName: chartInfo.IsSetName,
 	}
 
 	resp.ChartInfo = chartInfo
 	resp.DataResp = dataResp
+	resp.EdbInfoList = edbList
 	resp.Status = true
 
 	// 将数据加入缓存

+ 31 - 6
controllers/data_manage/cross_variety/tag.go

@@ -171,9 +171,23 @@ func (c *TagController) DeleteCheck() {
 	var deleteStatus int
 	var tipsMsg string
 
-	// todo 校验标签与图表的关系
-	//deleteStatus = 1
-	//tipsMsg = "已关联图表的标签,不允许删除!"
+	// 获取该标签关联的图表数
+	count, err := cross_variety.GetCountChartByTagId(req.ChartTagId)
+	if err != nil {
+		br.Msg = "检测异常"
+		br.ErrMsg = "检测异常,err:" + err.Error()
+		br.IsSendEmail = false
+		return
+	}
+	if count > 0 {
+		deleteStatus = 1
+		tipsMsg = "已关联图表的品种,不允许删除!"
+	}
+
+	if deleteStatus == 0 {
+		tipsMsg = "可删除,进行删除操作"
+	}
+
 	resp := response.TagDeleteCheckResp{
 		DeleteStatus: deleteStatus,
 		TipsMsg:      tipsMsg,
@@ -210,9 +224,20 @@ func (c *TagController) Delete() {
 		return
 	}
 
-	// todo 校验标签与图表的关系
-	//deleteStatus = 1
-	//tipsMsg = "已关联图表的标签,不允许删除!"
+	// 获取该标签关联的图表数
+	count, err := cross_variety.GetCountChartByTagId(req.ChartTagId)
+	if err != nil {
+		br.Msg = "检测异常"
+		br.ErrMsg = "检测异常,err:" + err.Error()
+		br.IsSendEmail = false
+		return
+	}
+	if count > 0 {
+		br.Msg = "已关联图表的品种,不允许删除!"
+		br.ErrMsg = "已关联图表的品种,不允许删除!"
+		br.IsSendEmail = false
+		return
+	}
 
 	varietyInfo, err := cross_variety.GetTagById(req.ChartTagId)
 	if err != nil {

+ 30 - 6
controllers/data_manage/cross_variety/variety.go

@@ -171,9 +171,22 @@ func (c *VarietyController) DeleteCheck() {
 	var deleteStatus int
 	var tipsMsg string
 
-	// todo 校验品种与图表的关系
-	//deleteStatus = 1
-	//tipsMsg = "已关联图表的品种,不允许删除!"
+	// 获取该品种关联的图表数
+	count, err := cross_variety.GetCountChartByVarietyId(req.ChartVarietyId)
+	if err != nil {
+		br.Msg = "检测异常"
+		br.ErrMsg = "检测异常,err:" + err.Error()
+		br.IsSendEmail = false
+		return
+	}
+	if count > 0 {
+		deleteStatus = 1
+		tipsMsg = "已关联图表的品种,不允许删除!"
+	}
+
+	if deleteStatus == 0 {
+		tipsMsg = "可删除,进行删除操作"
+	}
 	resp := response.VarietyDeleteCheckResp{
 		DeleteStatus: deleteStatus,
 		TipsMsg:      tipsMsg,
@@ -210,9 +223,20 @@ func (c *VarietyController) Delete() {
 		return
 	}
 
-	// todo 校验品种与图表的关系
-	//deleteStatus = 1
-	//tipsMsg = "已关联图表的品种,不允许删除!"
+	// 获取该品种关联的图表数
+	count, err := cross_variety.GetCountChartByVarietyId(req.ChartVarietyId)
+	if err != nil {
+		br.Msg = "检测异常"
+		br.ErrMsg = "检测异常,err:" + err.Error()
+		br.IsSendEmail = false
+		return
+	}
+	if count > 0 {
+		br.Msg = "已关联图表的品种,不允许删除!"
+		br.ErrMsg = "已关联图表的品种,不允许删除!"
+		br.IsSendEmail = false
+		return
+	}
 
 	varietyInfo, err := cross_variety.GetVarietyById(req.ChartVarietyId)
 	if err != nil {

+ 17 - 0
models/data_manage/cross_variety/chart_info_cross_variety.go

@@ -21,6 +21,23 @@ type ChartInfoCrossVariety struct {
 	CreateTime     time.Time `description:"创建时间"`
 }
 
+// GetCountChartByTagId
+// @Description: 根据标签id获取引用该标签的图表数量
+// @author: Roc
+// @datetime 2023-11-27 10:41:46
+// @param tagId int
+// @return total int64
+// @return err error
+func GetCountChartByTagId(tagId int) (total int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT count(1) total FROM chart_info AS a JOIN
+    chart_info_cross_variety AS b on a.chart_info_id = b.chart_info_id 
+    WHERE b.chart_x_tag_id = ? or b.chart_y_tag_id=?`
+	err = o.Raw(sql, tagId, tagId).QueryRow(&total)
+
+	return
+}
+
 // GetChartInfoCrossVarietyByChartInfoId
 // @Description: 根据图表id获取跨品种分析配置信息
 // @author: Roc

+ 17 - 0
models/data_manage/cross_variety/chart_variety_mapping.go

@@ -28,3 +28,20 @@ func GetChartVarietyMappingList(chartInfoId int) (items []*ChartVarietyMapping,
 	_, err = o.Raw(sql, chartInfoId).QueryRows(&items)
 	return
 }
+
+// GetCountChartByVarietyId
+// @Description: 根据品种id获取引用该标签的图表数量
+// @author: Roc
+// @datetime 2023-11-27 10:41:46
+// @param tagId int
+// @return total int64
+// @return err error
+func GetCountChartByVarietyId(varietyId int) (total int64, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT count(1) total FROM chart_info AS a JOIN
+    chart_variety_mapping AS b on a.chart_info_id = b.chart_info_id 
+    WHERE b.chart_variety_id = ? `
+	err = o.Raw(sql, varietyId).QueryRow(&total)
+
+	return
+}

+ 10 - 0
models/data_manage/cross_variety/response/chart.go

@@ -0,0 +1,10 @@
+package response
+
+import "eta/eta_api/models/data_manage"
+
+// ChartPreviewResp
+// @Description: 图表预览返回
+type ChartPreviewResp struct {
+	EdbInfoList []*data_manage.ChartEdbInfoMapping
+	DataResp    interface{} `description:"图表数据,根据图的类型而定的,没有确定的数据格式"`
+}

+ 2 - 2
services/data/chart_info.go

@@ -535,7 +535,7 @@ func GetChartEdbData(chartInfoId, chartType int, calendar, startDate, endDate st
 			err = errors.New(errMsg)
 			return
 		}
-		
+
 		extraConfig = tmpExtraConfig
 
 	default:
@@ -721,7 +721,7 @@ func getEdbDataMapList(chartInfoId, chartType int, calendar, startDate, endDate
 		}
 		dataList := make([]*data_manage.EdbDataList, 0)
 		//fmt.Println("chart:", v.Source, v.EdbInfoId, startDateReal, endDate)
-		fmt.Println("calendarPreYear:", calendarPreYear)
+		//fmt.Println("calendarPreYear:", calendarPreYear)
 		//var newEdbInfo *data_manage.EdbInfo
 		switch v.EdbInfoCategoryType {
 		case 0:

+ 17 - 8
services/data/cross_variety/chart.go

@@ -78,10 +78,12 @@ type SectionScatterEdbItemResp struct {
 
 // CoordinatePoint 坐标点
 type CoordinatePoint struct {
-	X     float64
-	Y     float64
-	XDate string
-	YDate string
+	X          float64
+	Y          float64
+	XEdbInfoId int
+	YEdbInfoId int
+	XDate      string
+	YDate      string
 }
 
 // GetChartData
@@ -368,10 +370,12 @@ func GetChartData(chartInfoId int, config request.ChartConfigReq) (edbList []*da
 				}
 			}
 			coordinatePointList = append(coordinatePointList, CoordinatePoint{
-				X:     xVal,
-				Y:     yVal,
-				XDate: dateMap[key1],
-				YDate: dateMap[key2],
+				X:          xVal,
+				Y:          yVal,
+				XEdbInfoId: xEdbInfoId,
+				YEdbInfoId: yEdbInfoId,
+				XDate:      dateMap[key1],
+				YDate:      dateMap[key2],
 			})
 		}
 
@@ -399,6 +403,11 @@ func GetChartData(chartInfoId int, config request.ChartConfigReq) (edbList []*da
 		DataList:    dataList,
 	}
 
+	// 去除返回指标中的数据信息,避免没必要的数据传输
+	for k, _ := range edbList {
+		edbList[k].DataList = nil
+	}
+
 	return
 }