|
@@ -296,7 +296,7 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapp
|
|
|
v.DataList = dataList
|
|
|
}
|
|
|
|
|
|
- xEdbIdValue, yDataList, err = BarChartData(baseEdbInfoMapping, edbInfoMappingList, edbList, futureGoodEdbInfoList, edbDataListMap, barChartInfoDateList, regionType, baseEdbInfoMapping.EndDate)
|
|
|
+ xEdbIdValue, yDataList, err = BarChartData(baseEdbInfoMapping, edbInfoMappingList, futureGoodEdbInfoList, edbDataListMap, barChartInfoDateList, regionType, baseEdbInfoMapping.EndDate)
|
|
|
|
|
|
if len(barChartInfoConf.XDataList) > 0 {
|
|
|
xDataList = barChartInfoConf.XDataList
|
|
@@ -419,7 +419,7 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapp
|
|
|
}
|
|
|
|
|
|
// BarChartData 获取数据
|
|
|
-func BarChartData(baseEdbInfoMapping *data_manage.ChartEdbInfoMapping, edbInfoMappingList, allEdbInfoMappingList []*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) {
|
|
|
+func BarChartData(baseEdbInfoMapping *data_manage.ChartEdbInfoMapping, edbInfoMappingList []*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[int]map[string]float64)
|
|
@@ -496,23 +496,37 @@ func BarChartData(baseEdbInfoMapping *data_manage.ChartEdbInfoMapping, edbInfoMa
|
|
|
noDataIdMap := make(map[int]int, 0) // 没有数据的指标map
|
|
|
xEdbInfoIdList := make([]int, 0) // 当前数据的指标id列表
|
|
|
|
|
|
- // 现货指标
|
|
|
+ // 先找到基准日期
|
|
|
var realDateTime time.Time
|
|
|
+ realDateTime, findDataValue, isFind, tmpErr := GetNeedDateData(findDateTime, edbDataListMap[baseEdbInfoMapping.EdbInfoId], baseEdbDataMap[baseEdbInfoMapping.EdbInfoId], futureGoodEdbDataMap)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ findDataList = append(findDataList, findDataValue)
|
|
|
+ yDataMap[baseEdbInfoMapping.EdbInfoId] = findDataValue
|
|
|
+ if isFind {
|
|
|
+ maxDate = realDateTime
|
|
|
+ } else {
|
|
|
+ noDataIdList = append(noDataIdList, baseEdbInfoMapping.EdbInfoId)
|
|
|
+ noDataIdMap[baseEdbInfoMapping.EdbInfoId] = baseEdbInfoMapping.EdbInfoId
|
|
|
+ }
|
|
|
+ // 处理其余现货指标
|
|
|
for _, v := range edbInfoMappingList {
|
|
|
- realDateTimeTmp, findDataValue, isFind, tmpErr := GetNeedDateData(findDateTime, edbDataListMap[v.EdbInfoId], baseEdbDataMap[v.EdbInfoId], futureGoodEdbDataMap)
|
|
|
- if tmpErr != nil {
|
|
|
- err = tmpErr
|
|
|
+ if v.EdbInfoId == baseEdbInfoMapping.EdbInfoId {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ tmpRealDateTime, findDataValueTmp, isFindTmp, e := GetNeedDateData(realDateTime, edbDataListMap[v.EdbInfoId], baseEdbDataMap[v.EdbInfoId], futureGoodEdbDataMap)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
return
|
|
|
}
|
|
|
- findDataList = append(findDataList, findDataValue)
|
|
|
+ findDataList = append(findDataList, findDataValueTmp)
|
|
|
yDataMap[v.EdbInfoId] = findDataValue
|
|
|
- // todo 日期如何确定
|
|
|
- if v.EdbInfoId == baseEdbInfoMapping.EdbInfoId {
|
|
|
- realDateTime = realDateTimeTmp
|
|
|
- }
|
|
|
- if isFind {
|
|
|
- if v.EdbInfoId == baseEdbInfoMapping.EdbInfoId {
|
|
|
- maxDate = realDateTimeTmp
|
|
|
+ if isFindTmp {
|
|
|
+ // todo 是否需要变更 maxDate
|
|
|
+ if maxDate.IsZero() || maxDate.Before(tmpRealDateTime) {
|
|
|
+ maxDate = tmpRealDateTime
|
|
|
}
|
|
|
} else {
|
|
|
noDataIdList = append(noDataIdList, v.EdbInfoId)
|