Browse Source

Merge remote-tracking branch 'origin/eta/1.3.1' into debug

Roc 1 year ago
parent
commit
119d309f04

+ 12 - 0
controllers/data_manage/chart_common.go

@@ -2,6 +2,7 @@ package data_manage
 
 import (
 	"eta/eta_api/controllers/data_manage/correlation"
+	"eta/eta_api/controllers/data_manage/cross_variety"
 	"eta/eta_api/controllers/data_manage/future_good"
 	"eta/eta_api/controllers/data_manage/line_equation"
 	"eta/eta_api/controllers/data_manage/line_feature"
@@ -138,6 +139,17 @@ func (this *ChartInfoController) CommonChartInfoDetailFromUniqueCode() {
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Data = resp
+	case utils.CHART_SOURCE_CROSS_HEDGING:
+		resp, isOk, msg, errMsg := cross_variety.GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
+		if !isOk {
+			br.Msg = msg
+			br.ErrMsg = errMsg
+			return
+		}
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "获取成功"
+		br.Data = resp
 	default:
 		br.Msg = "错误的图表"
 		br.ErrMsg = "错误的图表"

+ 292 - 4
controllers/data_manage/cross_variety/chart_info.go

@@ -6,9 +6,12 @@ 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"
 	"eta/eta_api/utils"
+	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strconv"
 	"strings"
@@ -270,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 = "获取失败"
@@ -280,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 = "获取成功"
@@ -514,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 = "获取失败"
@@ -529,7 +538,7 @@ func (c *ChartInfoController) Detail() {
 	//edbList, e := correlationServ.GetChartEdbInfoFormat(chartInfo.ChartInfoId, edbInfoMappingA, edbInfoMappingB)
 	//if e != nil {
 	//	br.Msg = "获取失败"
-	//	br.ErrMsg = "获取相关性图表, 完善指标信息失败, Err:" + e.Error()
+	//	br.ErrMsg = "获取跨品种分析图表, 完善指标信息失败, Err:" + e.Error()
 	//	return
 	//}
 
@@ -575,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 = "获取成功"
@@ -687,3 +697,281 @@ func (c *ChartInfoController) Copy() {
 	}
 	br.IsAddLog = true
 }
+
+// Move
+// @Title 移动图表接口
+// @Description 移动图表接口
+// @Success 200 {object} data_manage.MoveChartInfoReq
+// @router /chart_info/move [post]
+func (c *ChartInfoController) Move() {
+	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
+	}
+
+	var req data_manage.MoveChartInfoReq
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	if req.ChartInfoId <= 0 {
+		br.Msg = "参数错误"
+		br.ErrMsg = "图表id小于等于0"
+		br.IsSendEmail = false
+		return
+	}
+
+	chartInfo, err := data_manage.GetChartInfoById(req.ChartInfoId)
+	if err != nil {
+		br.Msg = "移动失败"
+		br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+		return
+	}
+
+	if chartInfo.Source != utils.CHART_SOURCE_CROSS_HEDGING {
+		br.Msg = "图表异常"
+		br.ErrMsg = "分类异常,不是跨品种分析的图表"
+		return
+	}
+
+	//移动排序
+	updateCol := make([]string, 0)
+	//如果有传入 上一个兄弟节点分类id
+	if req.PrevChartInfoId > 0 {
+		prevChartInfo, err := data_manage.GetChartInfoById(req.PrevChartInfoId)
+		if err != nil {
+			br.Msg = "移动失败"
+			br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
+			return
+		}
+		if prevChartInfo.ChartClassifyId != chartInfo.ChartClassifyId {
+			br.Msg = "不允许跨分类移动"
+			br.ErrMsg = "不允许跨分类移动"
+			br.IsSendEmail = false
+			return
+		}
+
+		//如果是移动在两个兄弟节点之间
+		if req.NextChartInfoId > 0 {
+			//下一个兄弟节点
+			nextChartInfo, err := data_manage.GetChartInfoById(req.NextChartInfoId)
+			if err != nil {
+				br.Msg = "移动失败"
+				br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
+				return
+			}
+			//如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
+			if prevChartInfo.Sort == nextChartInfo.Sort || prevChartInfo.Sort == chartInfo.Sort {
+				//变更兄弟节点的排序
+				updateSortStr := `sort + 2`
+				_ = data_manage.UpdateChartInfoSortByClassifyId(prevChartInfo.ChartClassifyId, prevChartInfo.Sort, prevChartInfo.ChartInfoId, []int{chartInfo.Source}, updateSortStr)
+			} else {
+				//如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
+				if nextChartInfo.Sort-prevChartInfo.Sort == 1 {
+					//变更兄弟节点的排序
+					updateSortStr := `sort + 1`
+					_ = data_manage.UpdateChartInfoSortByClassifyId(prevChartInfo.ChartClassifyId, prevChartInfo.Sort, prevChartInfo.ChartInfoId, []int{chartInfo.Source}, updateSortStr)
+				}
+			}
+		}
+
+		chartInfo.Sort = prevChartInfo.Sort + 1
+		chartInfo.ModifyTime = time.Now()
+		updateCol = append(updateCol, "Sort", "ModifyTime")
+
+	} else {
+		firstClassify, err := data_manage.GetFirstChartInfoByClassifyId(chartInfo.ChartClassifyId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "移动失败"
+			br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
+			return
+		}
+
+		if firstClassify != nil && firstClassify.ChartClassifyId != chartInfo.ChartClassifyId {
+			br.Msg = "不允许跨分类移动"
+			br.ErrMsg = "不允许跨分类移动"
+			br.IsSendEmail = false
+			return
+		}
+
+		//如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
+		if firstClassify != nil && firstClassify.Sort == 0 {
+			updateSortStr := ` sort + 1 `
+			_ = data_manage.UpdateChartInfoSortByClassifyId(firstClassify.ChartClassifyId, 0, firstClassify.ChartInfoId-1, []int{chartInfo.Source}, updateSortStr)
+		}
+
+		chartInfo.Sort = 0 //那就是排在第一位
+		chartInfo.ModifyTime = time.Now()
+		updateCol = append(updateCol, "Sort", "ModifyTime")
+	}
+
+	//更新
+	if len(updateCol) > 0 {
+		err = chartInfo.Update(updateCol)
+		if err != nil {
+			br.Msg = "移动失败"
+			br.ErrMsg = "修改失败,Err:" + err.Error()
+			return
+		}
+	}
+
+	if err != nil {
+		br.Msg = "移动失败"
+		br.ErrMsg = "修改失败,Err:" + err.Error()
+		return
+	}
+
+	//添加es数据
+	go data.EsAddOrEditChartInfo(req.ChartInfoId)
+	//修改my eta es数据
+	go data.EsAddOrEditMyChartInfoByChartInfoId(req.ChartInfoId)
+
+	//新增操作日志
+	{
+		chartLog := new(data_manage.ChartInfoLog)
+		chartLog.ChartName = chartInfo.ChartName
+		chartLog.ChartInfoId = req.ChartInfoId
+		chartLog.ChartClassifyId = chartInfo.ChartClassifyId
+		chartLog.SysUserId = sysUser.AdminId
+		chartLog.SysUserRealName = sysUser.RealName
+		chartLog.UniqueCode = chartInfo.UniqueCode
+		chartLog.CreateTime = time.Now()
+		chartLog.Content = string(c.Ctx.Input.RequestBody)
+		chartLog.Status = "移动跨品种分析图表"
+		chartLog.Method = c.Ctx.Input.URL()
+		go data_manage.AddChartInfoLog(chartLog)
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "移动成功"
+}
+
+// GetChartInfoDetailFromUniqueCode 根据编码获取图表详情
+func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCache bool, sysUser *system.Admin) (resp *data_manage.ChartInfoDetailFromUniqueCodeResp, isOk bool, msg, errMsg string) {
+	resp = new(data_manage.ChartInfoDetailFromUniqueCodeResp)
+
+	adminId := sysUser.AdminId
+
+	//判断是否存在缓存,如果存在缓存,那么直接从缓存中获取
+	key := data.GetChartInfoDataKey(chartInfo.ChartInfoId)
+	if utils.Re == nil && isCache {
+		if utils.Re == nil && utils.Rc.IsExist(key) {
+			if chartData, err1 := utils.Rc.RedisBytes(key); err1 == nil {
+				err := json.Unmarshal(chartData, &resp)
+				if err == nil && resp != nil {
+					// 这里跟当前用户相关的信息重新查询写入resp, 不使用缓存中的
+					var myCond string
+					var myPars []interface{}
+					myCond += ` AND a.admin_id=? `
+					myPars = append(myPars, adminId)
+					myCond += ` AND a.chart_info_id=? `
+					myPars = append(myPars, chartInfo.ChartInfoId)
+					myList, err := data_manage.GetMyChartByCondition(myCond, myPars)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						msg = "获取失败"
+						errMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
+						return
+					}
+					resp.ChartInfo.IsAdd = false
+					resp.ChartInfo.MyChartId = 0
+					resp.ChartInfo.MyChartClassifyId = ""
+					if myList != nil && len(myList) > 0 {
+						resp.ChartInfo.IsAdd = true
+						resp.ChartInfo.MyChartId = myList[0].MyChartId
+						resp.ChartInfo.MyChartClassifyId = myList[0].MyChartClassifyId
+					}
+
+					isOk = true
+					fmt.Println("source redis")
+					return
+				}
+			}
+		}
+	}
+
+	chartInfoId := chartInfo.ChartInfoId
+
+	if chartInfo.ExtraConfig == `` {
+		msg = "图表配置信息异常"
+		errMsg = "图表配置信息异常"
+		return
+	}
+	var config request.ChartConfigReq
+	err := json.Unmarshal([]byte(chartInfo.ExtraConfig), &config)
+	if err != nil {
+		msg = "解析跨品种分析配置失败"
+		errMsg = "解析跨品种分析配置失败,Err:" + err.Error()
+		return
+	}
+	// 获取图表x轴y轴
+	edbList, dataResp, err, msg, _ := cross_variety.GetChartData(0, config)
+	if err != nil {
+		errMsg = "获取图表,指标信息失败,Err:" + err.Error()
+		return
+	}
+	if chartInfoId > 0 && chartInfo != nil {
+		//判断是否加入我的图库
+		{
+			var myChartCondition string
+			var myChartPars []interface{}
+			myChartCondition += ` AND a.admin_id=? `
+			myChartPars = append(myChartPars, sysUser.AdminId)
+			myChartCondition += ` AND a.chart_info_id=? `
+			myChartPars = append(myChartPars, chartInfo.ChartInfoId)
+
+			myChartList, err := data_manage.GetMyChartByCondition(myChartCondition, myChartPars)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				msg = "获取失败"
+				errMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
+				return
+			}
+			if myChartList != nil && len(myChartList) > 0 {
+				chartInfo.IsAdd = true
+				chartInfo.MyChartId = myChartList[0].MyChartId
+				chartInfo.MyChartClassifyId = myChartList[0].MyChartClassifyId
+			}
+		}
+	}
+
+	//图表操作权限
+	chartInfo.IsEdit = data.CheckOpChartPermission(sysUser, chartInfo.SysUserId)
+	//判断是否需要展示英文标识
+	//chartInfo.IsEnChart = data.CheckIsEnChart(chartInfo.ChartNameEn, edbList[0:1], chartInfo.Source, chartInfo.ChartType)
+	//chartInfo.UnitEn = edbInfoMappingA.UnitEn
+
+	//isSaveAs := true
+	// 另存为
+	chartInfo.Button = data_manage.ChartViewButton{
+		IsEdit:    chartInfo.IsEdit,
+		IsEnChart: chartInfo.IsEnChart,
+		IsAdd:     chartInfo.IsAdd,
+		IsCopy:    true,
+		IsSetName: chartInfo.IsSetName,
+	}
+
+	resp.ChartInfo = chartInfo
+	resp.DataResp = dataResp
+	resp.EdbInfoList = edbList
+	resp.Status = true
+
+	// 将数据加入缓存
+	if utils.Re == nil {
+		d, _ := json.Marshal(resp)
+		_ = utils.Rc.Put(key, d, 2*time.Hour)
+	}
+	isOk = true
+	return
+}

+ 7 - 139
controllers/data_manage/cross_variety/classify.go

@@ -20,7 +20,7 @@ type ClassifyController struct {
 // @Title 跨品种分析分类列表
 // @Description 跨品种分析分类列表接口
 // @Param   IsShowMe   query   bool  true       "是否只看我的,true、false"
-// @Param   Source   query   int  true       "图表类型,3:相关性,4:滚动相关性"
+// @Param   Source   query   int  true       "图表类型,3:跨品种分析,4:滚动跨品种分析"
 // @Success 200 {object} data_manage.ChartClassifyListResp
 // @router /classify/list [get]
 func (c *ClassifyController) List() {
@@ -101,8 +101,8 @@ func (c *ClassifyController) List() {
 }
 
 // EditChartClassify
-// @Title 修改相关性图表分类
-// @Description 修改相关性图表分类接口
+// @Title 修改跨品种分析图表分类
+// @Description 修改跨品种分析图表分类接口
 // @Param	request	body data_manage.EditChartClassifyReq true "type json string"
 // @Success 200 Ret=200 修改成功
 // @router /classify/edit [post]
@@ -194,7 +194,7 @@ func (c *ClassifyController) DeleteChartClassifyCheck() {
 	var tipsMsg string
 	//删除分类
 	if req.ChartClassifyId > 0 && req.ChartInfoId == 0 {
-		//判断相关性图表分类下,是否含有图表
+		//判断跨品种分析图表分类下,是否含有图表
 		count, err := data_manage.GetChartInfoCountByClassifyId(req.ChartClassifyId)
 		if err != nil {
 			br.Msg = "删除失败"
@@ -234,8 +234,8 @@ func (c *ClassifyController) DeleteChartClassifyCheck() {
 }
 
 // DeleteChartClassify
-// @Title 删除相关性图表分类/图表
-// @Description 删除相关性图表分类/图表接口
+// @Title 删除跨品种分析图表分类/图表
+// @Description 删除跨品种分析图表分类/图表接口
 // @Param	request	body data_manage.DeleteChartClassifyReq true "type json string"
 // @Success 200 Ret=200 删除成功
 // @router /classify/delete [post]
@@ -334,7 +334,7 @@ func (c *ClassifyController) DeleteChartClassify() {
 			myIds = append(myIds, m.MyChartId)
 		}
 
-		source := chartInfo.Source // 相关性图表(滚动相关性)
+		source := chartInfo.Source // 跨品种分析图表(滚动跨品种分析)
 		//删除图表及关联指标
 		err = data_manage.DeleteChartInfoAndData(chartInfo.ChartInfoId)
 		if err != nil {
@@ -419,135 +419,3 @@ func (c *ClassifyController) DeleteChartClassify() {
 	br.Data = resp
 	br.IsAddLog = true
 }
-
-// ChartClassifyMove
-// @Title 相关性图表分类移动接口
-// @Description 相关性图表分类移动接口
-// @Success 200 {object} data_manage.MoveChartClassifyReq
-// @router /classify/move [post]
-func (c *ClassifyController) ChartClassifyMove() {
-	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
-	}
-
-	var req data_manage.MoveChartClassifyReq
-	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-
-	if req.ClassifyId <= 0 {
-		br.Msg = "参数错误"
-		br.ErrMsg = "分类id小于等于0"
-		return
-	}
-	//判断分类是否存在
-	chartClassifyInfo, err := data_manage.GetChartClassifyById(req.ClassifyId)
-	if err != nil {
-		br.Msg = "移动失败"
-		br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
-		return
-	}
-	if chartClassifyInfo.Source != utils.CHART_SOURCE_CROSS_HEDGING {
-		br.Msg = "分类异常"
-		br.ErrMsg = "分类异常,不是跨品种分析图表的分类"
-		return
-	}
-	updateCol := make([]string, 0)
-
-	//判断上级id是否一致,如果不一致的话,那么需要移动该分类层级
-	if chartClassifyInfo.ParentId != req.ParentClassifyId && req.ParentClassifyId != 0 {
-		parentChartClassifyInfo, err := data_manage.GetChartClassifyById(req.ParentClassifyId)
-		if err != nil {
-			br.Msg = "移动失败"
-			br.ErrMsg = "获取上级分类信息失败,Err:" + err.Error()
-			return
-		}
-		chartClassifyInfo.ParentId = parentChartClassifyInfo.ChartClassifyId
-		chartClassifyInfo.Level = parentChartClassifyInfo.Level + 1
-		chartClassifyInfo.ModifyTime = time.Now()
-		updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
-	}
-
-	//如果有传入 上一个兄弟节点分类id
-	if req.PrevClassifyId > 0 {
-		//上一个兄弟节点
-		prevClassify, err := data_manage.GetChartClassifyById(req.PrevClassifyId)
-		if err != nil {
-			br.Msg = "移动失败"
-			br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
-			return
-		}
-
-		//如果是移动在两个兄弟节点之间
-		if req.NextClassifyId > 0 {
-			//下一个兄弟节点
-			nextClassify, err := data_manage.GetChartClassifyById(req.NextClassifyId)
-			if err != nil {
-				br.Msg = "移动失败"
-				br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
-				return
-			}
-			//如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
-			if prevClassify.Sort == nextClassify.Sort || prevClassify.Sort == chartClassifyInfo.Sort {
-				//变更兄弟节点的排序
-				updateSortStr := `sort + 2`
-				_ = data_manage.UpdateChartClassifySortByParentId(prevClassify.ParentId, prevClassify.ChartClassifyId, prevClassify.Sort, updateSortStr)
-			} else {
-				//如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
-				if nextClassify.Sort-prevClassify.Sort == 1 {
-					//变更兄弟节点的排序
-					updateSortStr := `sort + 1`
-					_ = data_manage.UpdateChartClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.Sort, updateSortStr)
-				}
-			}
-		}
-
-		chartClassifyInfo.Sort = prevClassify.Sort + 1
-		chartClassifyInfo.ModifyTime = time.Now()
-		updateCol = append(updateCol, "Sort", "ModifyTime")
-
-	} else {
-		firstClassify, err := data_manage.GetFirstChartClassifyByParentId(chartClassifyInfo.ParentId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "移动失败"
-			br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
-			return
-		}
-
-		//如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
-		if firstClassify != nil && firstClassify.Sort == 0 {
-			updateSortStr := ` sort + 1 `
-			_ = data_manage.UpdateChartClassifySortByParentId(firstClassify.ParentId, firstClassify.ChartClassifyId-1, 0, updateSortStr)
-		}
-
-		chartClassifyInfo.Sort = 0 //那就是排在第一位
-		chartClassifyInfo.ModifyTime = time.Now()
-		updateCol = append(updateCol, "Sort", "ModifyTime")
-	}
-
-	//更新
-	if len(updateCol) > 0 {
-		err = chartClassifyInfo.Update(updateCol)
-		if err != nil {
-			br.Msg = "移动失败"
-			br.ErrMsg = "修改失败,Err:" + err.Error()
-			return
-		}
-	}
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "移动成功"
-}

+ 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:"图表数据,根据图的类型而定的,没有确定的数据格式"`
+}

+ 9 - 9
routers/commentsRouter.go

@@ -223,6 +223,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: "Move",
+            Router: `/chart_info/move`,
+            AllowHTTPMethods: []string{"post"},
+            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: "Preview",
@@ -268,15 +277,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ClassifyController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ClassifyController"],
-        beego.ControllerComments{
-            Method: "ChartClassifyMove",
-            Router: `/classify/move`,
-            AllowHTTPMethods: []string{"post"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:TagController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:TagController"],
         beego.ControllerComments{
             Method: "Add",

+ 1 - 1
services/data/chart_info.go

@@ -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
 }