Browse Source

Merge branch 'ETA_1.9.0' into debug

# Conflicts:
#	controllers/data_manage/excel/excel_info.go
#	controllers/ppt_english.go
#	controllers/ppt_v2.go
#	models/data_manage/excel/excel_info.go
#	models/data_manage/excel/request/excel_info.go
#	models/ppt_v2_group_mapping.go
#	services/ppt/ppt_group.go
zwxi 10 months ago
parent
commit
1d33967190

+ 19 - 1
controllers/data_manage/chart_theme.go

@@ -52,6 +52,24 @@ func (c *ChartThemeController) List() {
 		br.ErrMsg = "获取图表样式类型信息失败,Err:" + err.Error()
 		return
 	}
+	var oldTheme request.OldChartOptions
+	for i, v := range list {
+		var newTheme request.NewChartOptions
+		err = json.Unmarshal([]byte(v.Config), &oldTheme)
+		if err != nil {
+			continue
+		}
+		newTheme.OldChartOptions = oldTheme
+		for i := 0; i < 10; i++ {
+			newLineOption := request.NewLineOptions{
+				LineOptions: oldTheme.LineOptions,
+				Color:       oldTheme.ColorsOptions[i],
+			}
+			newTheme.LineOptionList = append(newTheme.LineOptionList, newLineOption)
+		}
+		newThemeStr, _ := json.Marshal(newTheme)
+		list[i].Config = string(newThemeStr)
+	}
 
 	br.Ret = 200
 	br.Success = true
@@ -333,7 +351,7 @@ func (c *ChartThemeController) Add() {
 }
 
 // Edit
-// @Title 新增主题
+// @Title 编辑主题
 // @Description
 // @Param	request	body request.DeleteThemeConfReq true "type json string"
 // @Success 200 Ret=200 修改成功

+ 67 - 0
models/data_manage/chart_theme/request/theme.go

@@ -28,3 +28,70 @@ type SetDefaultThemeReq struct {
 	ChartThemeId     int `description:"主题id"`
 	ChartThemeTypeId int `description:"主题类型id"`
 }
+
+type ColorsOptions []string
+
+type LineOptions struct {
+	DashStyle string  `json:"dashStyle"`
+	LineWidth int     `json:"lineWidth"`
+	LineType  string  `json:"lineType"`
+	Radius    float64 `json:"radius"`
+}
+
+type LegendOptions struct {
+	VerticalAlign string `json:"verticalAlign"`
+	ItemStyle     struct {
+		Color        string `json:"color"`
+		FontSize     int    `json:"fontSize"`
+		Cursor       string `json:"cursor"`
+		FontWeight   string `json:"fontWeight"`
+		TextOverflow string `json:"textOverflow"`
+	} `json:"itemStyle"`
+}
+
+type TitleOptions struct {
+	Align string `json:"align"`
+	Style struct {
+		Color    string `json:"color"`
+		FontSize int    `json:"fontSize"`
+	} `json:"style"`
+}
+
+type MarkerOptions struct {
+	Style struct {
+		Color    string `json:"color"`
+		FontSize int    `json:"fontSize"`
+	} `json:"style"`
+}
+
+type AxisOptions struct {
+	Style struct {
+		Color    string `json:"color"`
+		FontSize int    `json:"fontSize"`
+	} `json:"style"`
+}
+
+type DrawOption struct {
+	PlotBackgroundColor string `json:"plotBackgroundColor"`
+}
+
+type OldChartOptions struct {
+	ColorsOptions []string    `json:"colorsOptions"`
+	LineOptions   LineOptions `json:"lineOptions"`
+	LegendOptions interface{} `json:"legendOptions"`
+	TitleOptions  interface{} `json:"titleOptions"`
+	MarkerOptions interface{} `json:"markerOptions"`
+	XAxisOptions  interface{} `json:"xAxisOptions"`
+	YAxisOptions  interface{} `json:"yAxisOptions"`
+	DrawOption    interface{} `json:"drawOption"`
+}
+
+type NewChartOptions struct {
+	OldChartOptions
+	LineOptionList []NewLineOptions `json:"lineOptionList"`
+}
+
+type NewLineOptions struct {
+	LineOptions
+	Color string `json:"color"`
+}

+ 14 - 58
services/data/future_good/chart_info.go

@@ -376,27 +376,13 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, edbInfoMapping,
 // BarChartData 获取数据
 func BarChartData(edbInfoMapping *data_manage.ChartEdbInfoMapping, futureGoodMappingList []*future_good2.FutureGoodEdbInfo, edbDataListMap map[int][]*data_manage.EdbDataList, barChartInfoDateList []data_manage.BarChartInfoDateReq, regionType, latestDate string) (edbIdList []int, yDataList []data_manage.YData, err error) {
 	// 指标数据数组(10086:{"2022-12-02":100.01,"2022-12-01":102.3})
-	// 现货指标数据map
-	baseEdbDataMap := make(map[string]float64)
+	edbDataMap := make(map[int]map[string]float64)
 	for edbInfoId, edbDataList := range edbDataListMap {
-		if edbInfoId == edbInfoMapping.EdbInfoId {
-			for _, edbData := range edbDataList {
-				baseEdbDataMap[edbData.DataTime] = edbData.Value
-			}
-		}
-	}
-
-	// 期货指标数据map
-	futureGoodEdbDataMap := make(map[int]map[string]float64)
-	for edbInfoId, edbDataList := range edbDataListMap {
-		if edbInfoId == edbInfoMapping.EdbInfoId {
-			continue
-		}
 		edbDateData := make(map[string]float64)
 		for _, edbData := range edbDataList {
 			edbDateData[edbData.DataTime] = edbData.Value
 		}
-		futureGoodEdbDataMap[edbInfoId] = edbDateData
+		edbDataMap[edbInfoId] = edbDateData
 	}
 
 	// edbIdList 指标展示顺序;x轴的指标顺序
@@ -443,7 +429,7 @@ func BarChartData(edbInfoMapping *data_manage.ChartEdbInfoMapping, futureGoodMap
 		xEdbInfoIdList := make([]int, 0)    // 当前数据的指标id列表
 
 		// 现货指标
-		realDateTime, findDataValue, isFind, tmpErr := GetNeedDateData(findDateTime, edbDataListMap[edbInfoMapping.EdbInfoId], baseEdbDataMap, futureGoodEdbDataMap)
+		realDateTime, findDataValue, isFind, tmpErr := GetNeedDateData(findDateTime, edbDataListMap[edbInfoMapping.EdbInfoId], edbDataMap[edbInfoMapping.EdbInfoId])
 		if tmpErr != nil {
 			err = tmpErr
 			return
@@ -456,13 +442,8 @@ func BarChartData(edbInfoMapping *data_manage.ChartEdbInfoMapping, futureGoodMap
 			noDataIdList = append(noDataIdList, edbInfoMapping.EdbInfoId)
 			noDataIdMap[edbInfoMapping.EdbInfoId] = edbInfoMapping.EdbInfoId
 		}
-		//currMonth := findDateTime.Month() // 当前月份
-		//currYear := findDateTime.Year()   // 当前年份
-
-		// 用实际日期的月份作为基准,往前推12个月(2024-5-13 16:26:43修改)
-		currMonth := realDateTime.Month() // 当前月份
-		currYear := realDateTime.Year()   // 当前年份
-
+		currMonth := findDateTime.Month() // 当前月份
+		currYear := findDateTime.Year()   // 当前年份
 		xEdbInfoIdList = append(xEdbInfoIdList, edbInfoMapping.EdbInfoId)
 		mList := make([]int, 0) // 间隔月份
 		indexList := make([]int, 0)
@@ -501,7 +482,7 @@ func BarChartData(edbInfoMapping *data_manage.ChartEdbInfoMapping, futureGoodMap
 			//}
 			//tmpRealDateTime := findDateTime	// 按照配置找到的日期
 			tmpRealDateTime := realDateTime // 实际现货的日期
-			tmpFindDataValue, tmpIsFind := futureGoodEdbDataMap[futureGoodMapping.FutureGoodEdbInfoId][tmpRealDateTime.Format(utils.FormatDate)]
+			tmpFindDataValue, tmpIsFind := edbDataMap[futureGoodMapping.FutureGoodEdbInfoId][tmpRealDateTime.Format(utils.FormatDate)]
 			yDataMap[futureGoodMapping.FutureGoodEdbInfoId] = tmpFindDataValue
 
 			findDataList = append(findDataList, tmpFindDataValue)
@@ -879,7 +860,7 @@ func getFutureGoodEdbInfoList(latestDateTime time.Time, tmpFutureGoodEdbInfoList
 }
 
 // GetNeedDateData 获取合约内需要的日期数据
-func GetNeedDateData(needDateTime time.Time, dataList []*data_manage.EdbDataList, edbDataMap map[string]float64, allEdbDataMap map[int]map[string]float64) (findDateTime time.Time, findDataValue float64, isFind bool, err error) {
+func GetNeedDateData(needDateTime time.Time, dataList []*data_manage.EdbDataList, edbDataMap map[string]float64) (findDateTime time.Time, findDataValue float64, isFind bool, err error) {
 	//dataList := edbDataListMap[edbInfoId] //指标的所有数据值
 	if len(dataList) <= 0 {
 		// 没有数据的指标id
@@ -892,43 +873,18 @@ func GetNeedDateData(needDateTime time.Time, dataList []*data_manage.EdbDataList
 		return
 	}
 
-	// 该日期存在数据的期货指标的最小数量,目前是现货和期货各1个,总共2个
-	maxCount := 1
-
 	for tmpDateTime := needDateTime; tmpDateTime.After(minDateTime) || tmpDateTime.Equal(minDateTime); tmpDateTime = tmpDateTime.AddDate(0, 0, -1) {
 		tmpDate := tmpDateTime.Format(utils.FormatDate)
-		tmpValue, ok := edbDataMap[tmpDate]
-		if !ok {
-			continue
-		}
-
-		// 该日期存在数据的指标数量
-		count := 0
-
-		for _, currEdbDataMap := range allEdbDataMap {
-			_, tmpIsFind := currEdbDataMap[tmpDate]
-			if tmpIsFind {
-				count++
-				if count >= maxCount {
-					continue
-				}
+		if tmpValue, ok := edbDataMap[tmpDate]; ok { //如果能找到数据,那么就返回
+			// 数据为0,也直接返回,做无值处理
+			if tmpValue == 0 {
+				return
 			}
-		}
-
-		// 该日期存在数据的期货指标数量小于2个,那么要继续往前找
-		if count < maxCount {
-			continue
-		}
-
-		//如果能找到数据,那么就返回
-		// 数据为0,也直接返回,做无值处理
-		if tmpValue == 0 {
+			findDateTime, _ = time.ParseInLocation(utils.FormatDate, tmpDate, time.Local)
+			findDataValue = tmpValue
+			isFind = true
 			return
 		}
-		findDateTime, _ = time.ParseInLocation(utils.FormatDate, tmpDate, time.Local)
-		findDataValue = tmpValue
-		isFind = true
-		return
 	}
 
 	return