|
@@ -14,6 +14,9 @@ import (
|
|
|
// FormatCompanyTradeData2EdbMappings [公司-合约加总]转为指标数据
|
|
|
func FormatCompanyTradeData2EdbMappings(companyTradeData []*tradeAnalysisModel.ContractCompanyTradeData, tradeType, dateType, dateTypeNum int, startDate, endDate string, chartEdbList []*data_manage.ChartSaveItem) (edbMappings []*data_manage.ChartEdbInfoMapping, chartName string, err error) {
|
|
|
edbMappings = make([]*data_manage.ChartEdbInfoMapping, 0)
|
|
|
+ if dateType <= 0 {
|
|
|
+ dateType = utils.DateTypeOneMonth
|
|
|
+ }
|
|
|
|
|
|
// 期货公司名称作为标识进行匹配
|
|
|
edbMap := make(map[string]*data_manage.ChartSaveItem)
|
|
@@ -71,35 +74,46 @@ func FormatCompanyTradeData2EdbMappings(companyTradeData []*tradeAnalysisModel.C
|
|
|
// 指标数据和最值
|
|
|
edbData := make([]*data_manage.EdbDataList, 0)
|
|
|
var minData, maxData float64
|
|
|
- for dk, dv := range v.DataList {
|
|
|
+ var setMinMax bool
|
|
|
+ for _, dv := range v.DataList {
|
|
|
if dv.Date.Before(startTime) || dv.Date.After(endTime) {
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
// 交易方向
|
|
|
- var val float64
|
|
|
+ var (
|
|
|
+ val float64
|
|
|
+ hasVal bool
|
|
|
+ )
|
|
|
if tradeType == tradeAnalysisModel.WarehouseBuyChartType {
|
|
|
if dv.BuyValType == tradeAnalysisModel.TradeDataTypeNull {
|
|
|
continue
|
|
|
}
|
|
|
+ hasVal = true
|
|
|
val = float64(dv.BuyVal)
|
|
|
}
|
|
|
if tradeType == tradeAnalysisModel.WarehouseSoldChartType {
|
|
|
if dv.SoldValType == tradeAnalysisModel.TradeDataTypeNull {
|
|
|
continue
|
|
|
}
|
|
|
+ hasVal = true
|
|
|
val = float64(dv.SoldVal)
|
|
|
}
|
|
|
if tradeType == tradeAnalysisModel.WarehousePureBuyChartType {
|
|
|
if dv.PureBuyValType == tradeAnalysisModel.TradeDataTypeNull {
|
|
|
continue
|
|
|
}
|
|
|
+ hasVal = true
|
|
|
val = float64(dv.PureBuyVal)
|
|
|
}
|
|
|
+ if !hasVal {
|
|
|
+ continue
|
|
|
+ }
|
|
|
|
|
|
- if dk == 0 {
|
|
|
+ if !setMinMax {
|
|
|
minData = val
|
|
|
maxData = val
|
|
|
+ setMinMax = true
|
|
|
}
|
|
|
if val < minData {
|
|
|
minData = val
|
|
@@ -359,9 +373,15 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
|
|
|
// 数据根据公司排序, 不然会随机乱
|
|
|
companyTradeData = make([]*tradeAnalysisModel.ContractCompanyTradeData, 0)
|
|
|
for _, v := range companies {
|
|
|
- if mussyTradeData[v] != nil {
|
|
|
- companyTradeData = append(companyTradeData, mussyTradeData[v])
|
|
|
+ // 没数据也需要加进去, 不然edbList会少
|
|
|
+ if mussyTradeData[v] == nil {
|
|
|
+ companyData := new(tradeAnalysisModel.ContractCompanyTradeData)
|
|
|
+ companyData.CompanyName = v
|
|
|
+ companyData.DataList = make([]*tradeAnalysisModel.ContractCompanyTradeDataList, 0)
|
|
|
+ companyTradeData = append(companyTradeData, companyData)
|
|
|
+ continue
|
|
|
}
|
|
|
+ companyTradeData = append(companyTradeData, mussyTradeData[v])
|
|
|
}
|
|
|
return
|
|
|
}
|