|
@@ -11,90 +11,8 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-
|
|
|
-func GetPredictEdbInfoDataList(predictEdbConf data_manage.PredictEdbConf, latestDateStr string, lastDataValue float64, endDateStr, frequency string) (predictEdbInfoData []*data_manage.EdbData, err error) {
|
|
|
- endDate, err := time.ParseInLocation(utils.FormatDate, endDateStr, time.Local)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- latestDate, err := time.ParseInLocation(utils.FormatDate, latestDateStr, time.Local)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- dataValue := lastDataValue
|
|
|
- if predictEdbConf.RuleType == 2 {
|
|
|
- dataValue = predictEdbConf.FixedValue
|
|
|
- }
|
|
|
-
|
|
|
- dayList := getPredictEdbDayList(latestDate, endDate, frequency)
|
|
|
- predictEdbInfoData = make([]*data_manage.EdbData, 0)
|
|
|
- lenDayList := len(dayList)
|
|
|
- if lenDayList > 0 {
|
|
|
- for i := lenDayList - 1; i >= 0; i-- {
|
|
|
- v := dayList[i]
|
|
|
- predictEdbInfoData = append(predictEdbInfoData, &data_manage.EdbData{
|
|
|
- EdbDataId: predictEdbConf.PredictEdbInfoId + 100000 + i,
|
|
|
- EdbInfoId: predictEdbConf.PredictEdbInfoId,
|
|
|
- DataTime: v.Format(utils.FormatDate),
|
|
|
- Value: dataValue,
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-func GetChartPredictEdbInfoDataList(predictEdbConf data_manage.PredictEdbConf, filtrateStartDateStr, latestDateStr string, lastDataValue float64, endDateStr, frequency string) (predictEdbInfoData []*data_manage.EdbDataList, err error) {
|
|
|
- endDate, err := time.ParseInLocation(utils.FormatDate, endDateStr, time.Local)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- latestDate, err := time.ParseInLocation(utils.FormatDate, latestDateStr, time.Local)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- startDate := latestDate
|
|
|
-
|
|
|
-
|
|
|
- if filtrateStartDateStr != `` {
|
|
|
- filtrateStartDate, tmpErr := time.ParseInLocation(utils.FormatDate, filtrateStartDateStr, time.Local)
|
|
|
- if tmpErr != nil {
|
|
|
- err = tmpErr
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if filtrateStartDate.After(latestDate) {
|
|
|
- startDate = filtrateStartDate.AddDate(0, 0, -1)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- dataValue := lastDataValue
|
|
|
- if predictEdbConf.RuleType == 2 {
|
|
|
- dataValue = predictEdbConf.FixedValue
|
|
|
- }
|
|
|
-
|
|
|
- dayList := getPredictEdbDayList(startDate, endDate, frequency)
|
|
|
- predictEdbInfoData = make([]*data_manage.EdbDataList, 0)
|
|
|
- for k, v := range dayList {
|
|
|
- predictEdbInfoData = append(predictEdbInfoData, &data_manage.EdbDataList{
|
|
|
- EdbDataId: predictEdbConf.PredictEdbInfoId + 100000 + k,
|
|
|
- EdbInfoId: predictEdbConf.PredictEdbInfoId,
|
|
|
- DataTime: v.Format(utils.FormatDate),
|
|
|
- Value: dataValue,
|
|
|
- DataTimestamp: (v.UnixNano() / 1e6) + 1000,
|
|
|
- })
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
-func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []data_manage.PredictEdbConfAndData, filtrateStartDateStr, latestDateStr, endDateStr, frequency string, realPredictEdbInfoData []*data_manage.EdbDataList) (predictEdbInfoData []*data_manage.EdbDataList, minValue, maxValue float64, err error, errMsg string) {
|
|
|
+func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []data_manage.PredictEdbConfAndData, filtrateStartDateStr, latestDateStr, endDateStr, frequency, dataDateType string, realPredictEdbInfoData []*data_manage.EdbDataList) (predictEdbInfoData []*data_manage.EdbDataList, minValue, maxValue float64, err error, errMsg string) {
|
|
|
endDate, err := time.ParseInLocation(utils.FormatDate, endDateStr, time.Local)
|
|
|
if err != nil {
|
|
|
return
|
|
@@ -141,7 +59,7 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []data_manage.P
|
|
|
|
|
|
var tmpMinValue, tmpMaxValue float64
|
|
|
|
|
|
- dayList := getPredictEdbDayList(startDate, dataEndTime, frequency)
|
|
|
+ dayList := getPredictEdbDayList(startDate, dataEndTime, frequency, dataDateType)
|
|
|
if len(dayList) <= 0 {
|
|
|
continue
|
|
|
}
|
|
@@ -382,13 +300,15 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []data_manage.P
|
|
|
}
|
|
|
|
|
|
|
|
|
-func getPredictEdbDayList(startDate, endDate time.Time, frequency string) (dayList []time.Time) {
|
|
|
-
|
|
|
+func getPredictEdbDayList(startDate, endDate time.Time, frequency, dataDateType string) (dayList []time.Time) {
|
|
|
+ if dataDateType == `` {
|
|
|
+ dataDateType = `交易日`
|
|
|
+ }
|
|
|
switch frequency {
|
|
|
case "日度":
|
|
|
for currDate := startDate.AddDate(0, 0, 1); currDate.Before(endDate) || currDate.Equal(endDate); currDate = currDate.AddDate(0, 0, 1) {
|
|
|
-
|
|
|
- if currDate.Weekday() == time.Sunday || currDate.Weekday() == time.Saturday {
|
|
|
+
|
|
|
+ if dataDateType == `交易日` && (currDate.Weekday() == time.Sunday || currDate.Weekday() == time.Saturday) {
|
|
|
continue
|
|
|
}
|
|
|
dayList = append(dayList, currDate)
|
|
@@ -538,7 +458,7 @@ func GetPredictDataListByPredictEdbInfo(edbInfo *data_manage.EdbInfo, startDate,
|
|
|
})
|
|
|
}
|
|
|
var predictMinValue, predictMaxValue float64
|
|
|
- predictDataList, predictMinValue, predictMaxValue, err, _ = GetChartPredictEdbInfoDataListByConfList(predictEdbConfDataList, startDate, sourceEdbInfoItem.LatestDate, endDateStr, edbInfo.Frequency, allDataList)
|
|
|
+ predictDataList, predictMinValue, predictMaxValue, err, _ = GetChartPredictEdbInfoDataListByConfList(predictEdbConfDataList, startDate, sourceEdbInfoItem.LatestDate, endDateStr, edbInfo.Frequency, edbInfo.DataDateType, allDataList)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|