Explorar o código

持仓分析 查询时间调整

xiexiaoyuan %!s(int64=2) %!d(string=hai) anos
pai
achega
44b37f653e

+ 14 - 14
models/tables/trade_analysis/trade_analysis.go

@@ -5,20 +5,20 @@ import (
 	"time"
 )
 
-// 持仓榜单表
+// 上期能源持仓榜单表
 type TradePositionTop struct {
-	Id            uint64    `orm:"column(id);pk"`
-	ClassifyName  string    //分类名称
-	ClassifyType  string    //分类名称下的类型
-	DataTime      string    //数据日期
-	CreateTime    time.Time //插入时间
-	ModifyTime    time.Time //修改时间
-	DealShortName string    //成交量公司简称
-	DealValue     int       //成交量
-	DealChange    int       //成交变化量
-	DealType      int       //交易类型:1多单,2空单,3净多单,4净空单
-	SourceType    int       //数据来源,0是原始数据的值,1是由T+1日推算出的值,2是由T日的榜单数据推算出的值
-	Rank          int       //排名
+	Id            uint64    `gorm:"primaryKey;column:id" json:"id"`
+	ClassifyName  string    `gorm:"column:classify_name" json:"classify_name"`     //分类名称
+	ClassifyType  string    `gorm:"column:classify_type" json:"classify_type"`     //分类名称下的类型
+	DealShortName string    `gorm:"column:deal_short_name" json:"deal_short_name"` //成交量公司简称
+	DealValue     int       `gorm:"column:deal_value" json:"deal_value"`           //成交量
+	DealChange    int       `gorm:"column:deal_change" json:"deal_change"`         //成交变化量
+	DataTime      time.Time `gorm:"column:data_time" json:"data_time"`             //数据日期
+	CreateTime    time.Time `gorm:"column:create_time" json:"create_time"`         //插入时间
+	ModifyTime    time.Time `gorm:"column:modify_time" json:"modify_time"`         //修改时间
+	DealType      int       `gorm:"column:deal_type" json:"deal_type"`             //交易类型:1多单,2空单,3净多单,4净空单
+	SourceType    int       `gorm:"column:source_type" json:"source_type"`         //数据来源,0是原始数据的值,1是由T+1日推算出的值,2是由T日的榜单数据推算出的值
+	Rank          int       `gorm:"column:rank" json:"rank"`                       //排名
 }
 
 type TradeClassifyNameList struct {
@@ -110,7 +110,7 @@ func GetTradePositionTop(exchange string, classifyName, classifyType, dataTime s
 	return
 }
 
-func GetTradeTopLastDataTime(exchange string, classifyName, classifyType string)(item TradePositionTop, err error) {
+func GetTradeTopLastDataTime(exchange string, classifyName, classifyType string)(item *TradePositionTop, err error) {
 	tableName := "trade_position_" + exchange + "_top"
 	err = global.MYSQL["data"].
 		Table(tableName).

+ 9 - 6
services/trade_analysis/trade_analysis.go

@@ -213,6 +213,7 @@ func GetPositionTopDetail(req trade_analysis.GetPositionTopReq) (ret trade_analy
 		return
 	}
 	dataTimeStr := req.DataTime
+	var dataTime time.Time
 	//查询最新的时间
 	if dataTimeStr == "" {
 		lastItem , tmpErr := trade_analysis.GetTradeTopLastDataTime(exchange, req.ClassifyName, req.ClassifyType)
@@ -221,13 +222,15 @@ func GetPositionTopDetail(req trade_analysis.GetPositionTopReq) (ret trade_analy
 			err = tmpErr
 			return
 		}
-		dataTimeStr = lastItem.DataTime
-	}
-	dataTime, err := time.ParseInLocation(utils.FormatDate, dataTimeStr, time.Local)
-	if err != nil {
-		errMsg = "请输入正确的时间格式"
-		return
+		dataTime = lastItem.DataTime
+	}else{
+		dataTime, err = time.ParseInLocation(utils.FormatDate, dataTimeStr, time.Local)
+		if err != nil {
+			errMsg = "请输入正确的时间格式"
+			return
+		}
 	}
+
 	//遇到周末则跳过当天
 	weekStr := dataTime.Weekday().String()
 	if weekStr == "Sunday" || weekStr == "Saturday" {