Browse Source

持仓分析bug

xyxie 2 weeks ago
parent
commit
94c89ec889

+ 18 - 3
models/data_manage/trade_position_analysis.go

@@ -218,14 +218,14 @@ func DeletePositionTopByDataTimeClassify(exchange string, dataTime string, dealT
 	return
 }
 
-func GetTradePositionTopByExchangeDataTimeType(exchange string, dataTime string, dealType int) (list []TradePositionTop, err error) {
+func GetTradePositionTopByExchangeDataTimeType(exchange string, dataTime string, dealType int) (list []*TradePositionTop, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := "select * from trade_position_" + exchange + "_top WHERE data_time=? and deal_type=?"
 	err = o.Raw(sql, dataTime, dealType).Find(&list).Error
 	return
 }
 
-func GetTradePositionTopByExchangeDataTimeTypeClassify(exchange string, dataTime string, dealType int, classifyNames, classifyTypes []string) (list []TradePositionTop, err error) {
+func GetTradePositionTopByExchangeDataTimeTypeClassify(exchange string, dataTime string, dealType int, classifyNames, classifyTypes []string) (list []*TradePositionTop, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := `select * from trade_position_` + exchange + `_top WHERE data_time=? and deal_type=? and classify_name in (` + utils.GetOrmInReplace(len(classifyNames)) + `)  and classify_type in (` + utils.GetOrmInReplace(len(classifyTypes)) + `)`
 	err = o.Raw(sql, dataTime, dealType, classifyNames, classifyTypes).Find(&list).Error
@@ -267,7 +267,18 @@ func GetTradePositionTopOriginDataTimes(exchange string) (dates []string, err er
 	o := global.DbMap[utils.DbNameIndex]
 	sql := `SELECT DISTINCT data_time FROM base_from_trade_%s_index ORDER BY data_time ASC`
 	sql = fmt.Sprintf(sql, exchange)
-	err = o.Raw(sql).Scan(&dates).Error
+	var originDates []string
+	err = o.Raw(sql).Scan(&originDates).Error
+	if err != nil {
+		return
+	}
+	for _, v := range originDates {
+		if v == "" {
+			continue
+		}
+		v = utils.GormDateStrToDateStr(v)
+		dates = append(dates, v)
+	}
 	return
 }
 
@@ -441,6 +452,10 @@ func GetFirstBaseFromTradeIndexByDate(exchange string) (item *GetFirstBaseFromTr
 	o := global.DbMap[utils.DbNameIndex]
 	sql := "SELECT * FROM base_from_trade_" + exchange + "_index where rank < 50 order by data_time asc"
 	err = o.Raw(sql).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.DataTime = utils.GormDateStrToDateStr(item.DataTime)
 	return
 }
 

+ 14 - 2
models/data_manage/trade_position_analysis_guangzhou.go

@@ -21,7 +21,7 @@ FROM
 WHERE
 	a.data_time between ? and ?
 	and c.base_from_trade_guangzhou_classify_id in (7,8)
-	and c.index_name like '%持单量%'
+	and c.index_name like '%持单量%'
 	and c.index_name not like '%日成交持仓排名%'`
 	err = o.Exec(sql1, now, now, startDate, endDate).Error
 	if err != nil {
@@ -118,7 +118,15 @@ WHERE
 	AND c.index_name NOT LIKE '%日成交持仓排名%' 
 ORDER BY
 	a.data_time asc`
-	err = o.Raw(sql).Scan(&dates).Error
+	var originDates []string
+	err = o.Raw(sql).Scan(&originDates).Error
+	if err != nil {
+		return
+	}
+	for _, v := range originDates {
+		v = utils.GormDateStrToDateStr(v)
+		dates = append(dates, v)
+	}
 	return
 }
 
@@ -176,6 +184,10 @@ WHERE
 ORDER BY
 	a.data_time asc`
 	err = o.Raw(sql).First(&item).Error
+	if err != nil {
+		return
+	}
+	item.DataTime = utils.GormDateStrToDateStr(item.DataTime)
 	return
 }