Browse Source

商品价格利润曲线显示修改

xyxie 6 months ago
parent
commit
077f53f28d

+ 0 - 4
controllers/data_manage/future_good/future_good_chart_info.go

@@ -1405,8 +1405,6 @@ func getFutureGoodChartInfo(chartInfo *data_manage.ChartInfoView, chartType, dat
 			name := strings.Split(v.EdbName, "(")
 			if barConfig.FutureGoodEdbName != "" {
 				name[0] = barConfig.FutureGoodEdbName
-			} else {
-
 			}
 			if len(name) > 1 {
 				if barConfig.FutureGoodEdbName == "" {
@@ -1765,8 +1763,6 @@ func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCa
 			name := strings.Split(v.EdbName, "(")
 			if barConfig.FutureGoodEdbName != "" {
 				name[0] = barConfig.FutureGoodEdbName
-			} else {
-
 			}
 			if len(name) > 1 {
 				if barConfig.FutureGoodEdbName == "" {

+ 23 - 20
services/data/future_good/profit_chart_info.go

@@ -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