|
@@ -18,7 +18,6 @@ import (
|
|
|
func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapping *data_manage.ChartEdbInfoMapping, edbInfoMappingList []*data_manage.ChartEdbInfoMapping, futureGoodEdbInfoMapping *data_manage.ChartEdbInfoMapping, barChartInfoConf data_manage.FutureGoodBarChartInfoReq, needData bool) (barConfigEdbInfoIdList []data_manage.BarChartInfoEdbItemReq, edbList []*data_manage.ChartEdbInfoMapping, xEdbIdValue []int, xDataList []data_manage.XData, yDataList []data_manage.YData, err error) {
|
|
|
edbList = make([]*data_manage.ChartEdbInfoMapping, 0)
|
|
|
barChartInfoDateList := barChartInfoConf.DateList
|
|
|
- baseEdbInfoId := barChartInfoConf.BaseEdbInfoId
|
|
|
if futureGoodEdbInfoMapping == nil {
|
|
|
err = errors.New("商品指标未选取")
|
|
|
return
|
|
@@ -274,13 +273,32 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapp
|
|
|
// todo item
|
|
|
//item.DataList = dataList
|
|
|
}
|
|
|
+ futureEdbInfoIds := make([]int, 0)
|
|
|
+ for _, v := range futureGoodMappingList {
|
|
|
+ futureEdbInfoIds = append(futureEdbInfoIds, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ tmpDataListMap := make(map[int][]*future_good2.FutureGoodEdbData)
|
|
|
+ if len(futureEdbInfoIds) > 0 {
|
|
|
+ // 期货数据
|
|
|
+ tmpDataList, tmpErr := future_good2.GetFutureGoodEdbDataListByIdsAndDate(futureEdbInfoIds, startDate, endDate)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range tmpDataList {
|
|
|
+ if _, ok := tmpDataListMap[v.FutureGoodEdbInfoId]; !ok {
|
|
|
+ tmpDataListMap[v.FutureGoodEdbInfoId] = make([]*future_good2.FutureGoodEdbData, 0)
|
|
|
+ }
|
|
|
+ tmpDataListMap[v.FutureGoodEdbInfoId] = append(tmpDataListMap[v.FutureGoodEdbInfoId], v)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // 期货数据
|
|
|
for _, v := range futureGoodMappingList {
|
|
|
dataList := make([]*data_manage.EdbDataList, 0)
|
|
|
-
|
|
|
- tmpDataList, tmpErr := future_good2.GetFutureGoodEdbDataListByDate(v.EdbInfoId, startDate, endDate)
|
|
|
- if tmpErr != nil {
|
|
|
+ tmpDataList, ok := tmpDataListMap[v.EdbInfoId]
|
|
|
+ if !ok {
|
|
|
+ err = fmt.Errorf("期货数据不存在 FutureGoodEdbInfoId: %d", v.EdbInfoId)
|
|
|
return
|
|
|
}
|
|
|
for _, tmpData := range tmpDataList {
|
|
@@ -339,13 +357,13 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, baseEdbInfoMapp
|
|
|
}
|
|
|
|
|
|
// 基础指标
|
|
|
- {
|
|
|
- edbInfoIdList = append(edbInfoIdList, baseEdbInfoId)
|
|
|
- tmpVal, ok := yDataMap[baseEdbInfoId]
|
|
|
+ for _, tmp := range edbInfoMappingList {
|
|
|
+ edbInfoIdList = append(edbInfoIdList, tmp.EdbInfoId)
|
|
|
+ tmpVal, ok := yDataMap[tmp.EdbInfoId]
|
|
|
valueList = append(valueList, tmpVal)
|
|
|
if !ok || tmpVal == 0 {
|
|
|
- noDataEdbInfoIdList = append(noDataEdbInfoIdList, baseEdbInfoId)
|
|
|
- noDataEdbIdMap[baseEdbInfoId] = baseEdbInfoId
|
|
|
+ noDataEdbInfoIdList = append(noDataEdbInfoIdList, tmp.EdbInfoId)
|
|
|
+ noDataEdbIdMap[tmp.EdbInfoId] = tmp.EdbInfoId
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -524,7 +542,7 @@ func BarChartData(baseEdbInfoMapping *data_manage.ChartEdbInfoMapping, edbInfoMa
|
|
|
return
|
|
|
}
|
|
|
findDataList = append(findDataList, findDataValueTmp)
|
|
|
- yDataMap[v.EdbInfoId] = findDataValue
|
|
|
+ yDataMap[v.EdbInfoId] = findDataValueTmp
|
|
|
if isFindTmp {
|
|
|
// todo 是否需要变更 maxDate
|
|
|
if maxDate.IsZero() || maxDate.Before(tmpRealDateTime) {
|