فهرست منبع

修改图表主题

xyxie 8 ماه پیش
والد
کامیت
c7bbde417e

+ 20 - 1
controllers/data_manage/chart_theme.go

@@ -87,13 +87,32 @@ func (c *ChartThemeController) TypeList() {
 		return
 	}
 
-	list, err := chart_theme.GetAllChartThemeTypeList()
+	listTmp, err := chart_theme.GetAllChartThemeTypeList()
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取图表样式类型信息失败,Err:" + err.Error()
 		return
 	}
 
+	//遍历list,将id和name组成map
+	chartTypeMap := make(map[int][]*chart_theme.ChartThemeTypeList)
+	for _, v := range listTmp {
+		if v.ParentId > 0 {
+			chartTypeMap[v.ParentId] = append(chartTypeMap[v.ParentId], v)
+		}
+	}
+	list := make([]*chart_theme.ChartThemeTypeList, 0)
+	for _, v := range listTmp {
+		if v.ParentId == 0 {
+			tmp := v
+			child, ok := chartTypeMap[v.ChartType]
+			if ok {
+				tmp.Child = child
+			}
+			list = append(list, tmp)
+		}
+	}
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 6 - 0
models/data_manage/chart_info.go

@@ -2373,6 +2373,11 @@ type ChartSectionAllExtraConf struct {
 type ChartSectionDateConfItem struct {
 	MoveForward    int    `description:"前移的期数"`
 	EdbInfoId      int    `description:"指标ID"`
+	EdbName        string `description:"指标名称"`
+	EdbNameEn      string `description:"指标名称英文"`
+	EdbInfoType    int    `description:"指标类型"`
+	Frequency      string `description:"频度"`
+	EndDate        string `description:"最新日期"`
 	DateType       int    `description:"日期类型:0 指标日期,1系统日期"`
 	DateConfName   string `description:"引用日期名称"` // 引用日期名称不能重复
 	DateConfNameEn string `description:"引用日期英文名称"`
@@ -2415,6 +2420,7 @@ type ChartSectionSeriesEdbConf struct {
 	DateConf     *ChartSectionSeriesDateConfItem
 	EdbName      string `description:"中文别名"`
 	EdbNameEn    string `description:"英文别名"`
+	EdbInfoType  int    `description:"指标类型"`
 	Unit         string `description:"单位"`
 	UnitEn       string `description:"英文单位"`
 	DateConfName string `description:"引用日期名称"`

+ 15 - 2
models/data_manage/chart_theme/chart_theme_type.go

@@ -17,6 +17,17 @@ type ChartThemeType struct {
 	CreateTime          time.Time `description:"创建时间"`
 }
 
+type ChartThemeTypeList struct {
+	ChartThemeTypeId    int    `description:"图表主题类型ID" `
+	ChartTypeName       string `description:"类型名称"`
+	ChartTypeNameEn     string `description:"类型名称"`
+	ChartType           int    `description:"图表类型"`
+	ChartSource         int    `description:"图表来源"`
+	ParentId            int    `description:"父级ID"`
+	DefaultChartThemeId int    `description:"默认使用的主题id"`
+	Child               []*ChartThemeTypeList
+}
+
 // Update
 // @Description: 更新
 // @author: Roc
@@ -36,9 +47,11 @@ func (m *ChartThemeType) Update(cols []string) (err error) {
 // @datetime 2023-12-13 17:31:03
 // @return list []*ChartThemeType
 // @return err error
-func GetAllChartThemeTypeList() (list []*ChartThemeType, err error) {
+func GetAllChartThemeTypeList() (list []*ChartThemeTypeList, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM chart_theme_type ORDER BY chart_theme_type_id ASC `
+	sql := `SELECT c.chart_type_id AS chart_type, c.chart_type_name,c.chart_type_name_en, parent_id, t.chart_theme_type_id,t.chart_source,t.default_chart_theme_id FROM chart_type c 
+left JOIN chart_theme_type t on c.chart_type_id=t.chart_type
+ORDER BY c.sort ASC`
 	_, err = o.Raw(sql).QueryRows(&list)
 
 	return

+ 33 - 3
services/data/chart_extra_config.go

@@ -356,9 +356,13 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
 	}
 	// 确定好截面散点图返回的数据格式
 	// 获取所有的引用日期设置
-	DateConfListMap := make(map[string]*data_manage.ChartSectionDateConfItem)
+	dateConfListMap := make(map[string]*data_manage.ChartSectionDateConfItem)
+	dateConfEdbIds := make([]int, 0)
 	for _, v := range extraConfig.DateConfList {
-		DateConfListMap[v.DateConfName] = v
+		if v.EdbInfoId > 0 {
+			dateConfEdbIds = append(dateConfEdbIds, v.EdbInfoId)
+		}
+		dateConfListMap[v.DateConfName] = v
 	}
 	// 遍历每个系列
 	// 遍历每个指标,根据选中的日期,进行日期变换得到最终的日期,根据最终的日期获取对应的值
@@ -386,6 +390,7 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
 			}
 			seriesItem.EdbInfoList[index].EdbName = edbMappingInfo.EdbName
 			seriesItem.EdbInfoList[index].EdbNameEn = edbMappingInfo.EdbNameEn
+			seriesItem.EdbInfoList[index].EdbInfoType = edbMappingInfo.EdbInfoType
 			seriesItem.EdbInfoList[index].Unit = edbMappingInfo.Unit
 			seriesItem.EdbInfoList[index].UnitEn = edbMappingInfo.UnitEn
 			if index == 0 {
@@ -413,7 +418,7 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
 				}
 			} else {
 				// 获取日期配置
-				dateConfItem, ok1 := DateConfListMap[edbConf.DateConfName]
+				dateConfItem, ok1 := dateConfListMap[edbConf.DateConfName]
 				if !ok1 {
 					err = fmt.Errorf("引用日期配置不存在")
 					return
@@ -588,6 +593,31 @@ func GetChartSectionCombineData(chartInfo *data_manage.ChartInfo, mappingList []
 		dataListResp.Right2Max = strconv.FormatFloat(Right2Max, 'f', -1, 64)
 	}
 
+	// 查询引用日期里的指标信息
+	if len(dateConfEdbIds) > 0 {
+		dateConfEdbList, e := data_manage.GetEdbInfoByIdList(dateConfEdbIds)
+		if e != nil {
+			err = fmt.Errorf("查询引用日期里的指标信息失败,错误信息:%s", e.Error())
+			return
+		}
+		dateConfEdbMap := make(map[int]*data_manage.EdbInfo)
+		for _, dateConfEdb := range dateConfEdbList {
+			dateConfEdbMap[dateConfEdb.EdbInfoId] = dateConfEdb
+		}
+		for i, dateConf := range extraConfig.DateConfList {
+			if dateConf.EdbInfoId > 0 {
+				edbItem, ok := dateConfEdbMap[dateConf.EdbInfoId]
+				if ok {
+					extraConfig.DateConfList[i].EdbName = edbItem.EdbName
+					extraConfig.DateConfList[i].EdbInfoId = edbItem.EdbInfoId
+					extraConfig.DateConfList[i].EdbInfoType = edbItem.EdbInfoType
+					extraConfig.DateConfList[i].Frequency = edbItem.Frequency
+					extraConfig.DateConfList[i].EndDate = edbItem.EndDate
+				}
+
+			}
+		}
+	}
 	dataListResp.SeriesList = extraConfig.SeriesList
 	dataListResp.DateConfList = extraConfig.DateConfList
 	dataListResp.BaseChartSeriesName = extraConfig.BaseChartSeriesName