|
@@ -187,11 +187,11 @@ func GetProfitChartEdbData(baseEdbInfo *data_manage.EdbInfo, edbInfoList []*data
|
|
|
xDataList = append(xDataList, tmp)
|
|
|
}
|
|
|
var edbIdList []int
|
|
|
-
|
|
|
- edbIdList, yDataList, err = ProfitChartChartData(baseEdbInfo, baseDataListMap, futureGoodEdbInfoDateMap, futureGoodDataListMap, chartInfoDateList, baseEdbInfo.EndDate, specialFutureGoodEdbInfoMap, formulaStr, tagEdbIdMap, dateList, maxN, reqEdbInfoIds)
|
|
|
+ futureGoodNameMap := make(map[int]map[int]string)
|
|
|
+ edbIdList, yDataList, futureGoodNameMap, err = ProfitChartChartData(baseEdbInfo, baseDataListMap, futureGoodEdbInfoDateMap, futureGoodDataListMap, chartInfoDateList, baseEdbInfo.EndDate, specialFutureGoodEdbInfoMap, formulaStr, tagEdbIdMap, dateList, maxN, reqEdbInfoIds)
|
|
|
|
|
|
// todo 最后处理数据
|
|
|
- tmpXDataList, newYDataList, err := handleProfitResultData(xDataList, baseEdbInfo, yDataList, earliestDateTime, edbIdList)
|
|
|
+ tmpXDataList, newYDataList, err := handleProfitResultData(xDataList, futureGoodNameMap, yDataList, earliestDateTime, edbIdList)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -207,7 +207,7 @@ func GetProfitChartEdbData(baseEdbInfo *data_manage.EdbInfo, edbInfoList []*data
|
|
|
}
|
|
|
|
|
|
// ProfitChartChartData 获取数据
|
|
|
-func ProfitChartChartData(baseEdbInfo *data_manage.EdbInfo, baseDataListMap map[int][]*data_manage.EdbDataList, futureGoodEdbInfoMap map[int]map[string]*future_good.FutureGoodEdbInfo, futureGoodEdbDataListMap map[int][]*data_manage.EdbDataList, chartInfoDateList []request.ChartInfoDateReq, latestDate string, specialFutureGoodEdbInfoMap map[int]map[int]*future_good.FutureGoodEdbInfo, formulaStr string, tagEdbIdMap map[string]int, dateList []string, maxN int, reqEdbInfoIds []int) (edbIdList []int, yDataList []data_manage.YData, err error) {
|
|
|
+func ProfitChartChartData(baseEdbInfo *data_manage.EdbInfo, baseDataListMap map[int][]*data_manage.EdbDataList, futureGoodEdbInfoMap map[int]map[string]*future_good.FutureGoodEdbInfo, futureGoodEdbDataListMap map[int][]*data_manage.EdbDataList, chartInfoDateList []request.ChartInfoDateReq, latestDate string, specialFutureGoodEdbInfoMap map[int]map[int]*future_good.FutureGoodEdbInfo, formulaStr string, tagEdbIdMap map[string]int, dateList []string, maxN int, reqEdbInfoIds []int) (edbIdList []int, yDataList []data_manage.YData, futureGoodNameMap map[int]map[int]string, err error) {
|
|
|
// 指标数据数组(10086:{"2022-12-02":100.01,"2022-12-01":102.3})
|
|
|
//earliestDateTime time.Time
|
|
|
// ETA指标数据
|
|
@@ -236,8 +236,8 @@ func ProfitChartChartData(baseEdbInfo *data_manage.EdbInfo, baseDataListMap map[
|
|
|
|
|
|
// 将计算公式中的字母转大写
|
|
|
formulaStr = strings.ToUpper(formulaStr)
|
|
|
-
|
|
|
- for _, barChartInfoDate := range chartInfoDateList {
|
|
|
+ futureGoodNameMap = make(map[int]map[int]string)
|
|
|
+ for tmpk, barChartInfoDate := range chartInfoDateList {
|
|
|
yDataMap := make(map[int]float64)
|
|
|
var maxDate time.Time
|
|
|
|
|
@@ -316,6 +316,7 @@ func ProfitChartChartData(baseEdbInfo *data_manage.EdbInfo, baseDataListMap map[
|
|
|
|
|
|
mList := make([]int, 0) // 间隔月份
|
|
|
|
|
|
+ tmpNameMap := make(map[int]string)
|
|
|
// 最小开始的n值
|
|
|
//minN := (findDateTime.Year()-earliestDateTime.Year())*12 + int(findDateTime.Month()-earliestDateTime.Month())
|
|
|
for _, date := range dateList {
|
|
@@ -374,7 +375,17 @@ func ProfitChartChartData(baseEdbInfo *data_manage.EdbInfo, baseDataListMap map[
|
|
|
//}
|
|
|
|
|
|
newTagEdbIdMap := make(map[string]int)
|
|
|
+
|
|
|
for tag, zlEdbId := range tagEdbIdMap {
|
|
|
+ if tag == "A" {
|
|
|
+ nameTmp := strings.Split(futureGoodEdbInfoMap[zlEdbId][date].FutureGoodEdbName, "(")
|
|
|
+ nameTmpEn := strings.Split(futureGoodEdbInfoMap[zlEdbId][date].FutureGoodEdbNameEn, "(")
|
|
|
+ if len(nameTmp) > 1 && len(nameTmpEn) > 1 {
|
|
|
+ nameTmp[1] = strings.Trim(nameTmp[1], ")")
|
|
|
+ nameTmpEn[1] = strings.Trim(nameTmpEn[1], ")")
|
|
|
+ tmpNameMap[tmpN+1] = nameTmp[1] + "-" + nameTmpEn[1]
|
|
|
+ }
|
|
|
+ }
|
|
|
newTagEdbIdMap[tag] = zlAndChildEdbId[zlEdbId]
|
|
|
}
|
|
|
//, formulaStr string, tagEdbIdMap map[string]int
|
|
@@ -461,7 +472,7 @@ func ProfitChartChartData(baseEdbInfo *data_manage.EdbInfo, baseDataListMap map[
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ futureGoodNameMap[tmpk] = tmpNameMap
|
|
|
yDataList = append(yDataList, data_manage.YData{
|
|
|
Date: yDate,
|
|
|
ConfigDate: realDateTime,
|
|
@@ -553,7 +564,7 @@ func getProfitFutureGoodEdbInfoList(earliestDateTime time.Time, zlFutureGoodEdbI
|
|
|
}
|
|
|
|
|
|
// handleProfitResultData 处理成最终的结果数据
|
|
|
-func handleProfitResultData(xDataListInit []data_manage.XData, baseEdbInfo *data_manage.EdbInfo, yDataList []data_manage.YData, earliestDateTime time.Time, allEdbInfoIds []int) (xDataList []data_manage.XData, newYDataList []data_manage.YData, err error) {
|
|
|
+func handleProfitResultData(xDataListInit []data_manage.XData, futureNameMap map[int]map[int]string, yDataList []data_manage.YData, earliestDateTime time.Time, allEdbInfoIds []int) (xDataList []data_manage.XData, newYDataList []data_manage.YData, err error) {
|
|
|
newYDataList = yDataList
|
|
|
xDataList = xDataListInit
|
|
|
|
|
@@ -659,8 +670,6 @@ func handleProfitResultData(xDataListInit []data_manage.XData, baseEdbInfo *data
|
|
|
newYDataList[yIndex].Value = yData.Value[0 : maxI+1]
|
|
|
}
|
|
|
|
|
|
- currDate, _ := time.ParseInLocation(utils.FormatDate, yData.Date, time.Local)
|
|
|
-
|
|
|
nameList := make([]string, 0)
|
|
|
enNameList := make([]string, 0)
|
|
|
for k1, n := range newYDataList[yIndex].XEdbInfoIdList {
|
|
@@ -674,16 +683,10 @@ func handleProfitResultData(xDataListInit []data_manage.XData, baseEdbInfo *data
|
|
|
nameList = append(nameList, `无合约`)
|
|
|
enNameList = append(enNameList, `no contract`)
|
|
|
} else {
|
|
|
- var date string
|
|
|
-
|
|
|
- currDateTime := currDate.AddDate(0, n-1, 0)
|
|
|
- month := int(currDateTime.Month())
|
|
|
- date = fmt.Sprintf("%d%d", currDateTime.Year(), month)
|
|
|
- if month < 10 {
|
|
|
- date = fmt.Sprintf("%d0%d", currDateTime.Year(), month)
|
|
|
- }
|
|
|
- nameList = append(nameList, date)
|
|
|
- enNameList = append(enNameList, date)
|
|
|
+ nameTmp := futureNameMap[yIndex][n]
|
|
|
+ nameTmpSlice := strings.Split(nameTmp, "-")
|
|
|
+ nameList = append(nameList, nameTmpSlice[0])
|
|
|
+ enNameList = append(enNameList, nameTmpSlice[1])
|
|
|
}
|
|
|
}
|
|
|
newYDataList[yIndex].NameList = nameList
|