Browse Source

fix:持仓分析新增同步最近更新时间

Roc 1 year ago
parent
commit
ac468a77f4

+ 13 - 4
models/data_manage/trade_position_analysis.go

@@ -210,12 +210,13 @@ type BaseFromTradeClassify struct {
 	ClassifyName string    //分类名称
 	ClassifyType string    //分类名称下的类型
 	Exchange     string    //交易所
+	LatestDate   time.Time //数据最近的日期
 	CreateTime   time.Time //插入时间
 	ModifyTime   time.Time //修改时间
 }
 
 // GetAllBaseFromTradeClassify 获取所有的交易所分类列表
-func GetAllBaseFromTradeClassify() (list []BaseFromTradeClassify, err error) {
+func GetAllBaseFromTradeClassify() (list []*BaseFromTradeClassify, err error) {
 	sql := `SELECT * FROM base_from_trade_classify   `
 
 	o := orm.NewOrmUsingDB("data")
@@ -224,6 +225,13 @@ func GetAllBaseFromTradeClassify() (list []BaseFromTradeClassify, err error) {
 	return
 }
 
+// Update 更新
+func (m *BaseFromTradeClassify) Update(cols []string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	_, err = o.Update(m, cols...)
+	return
+}
+
 // MultiAddBaseFromTradeClassify 批量插入交易所分类
 func MultiAddBaseFromTradeClassify(items []*BaseFromTradeClassify) (err error) {
 	if len(items) == 0 {
@@ -235,8 +243,9 @@ func MultiAddBaseFromTradeClassify(items []*BaseFromTradeClassify) (err error) {
 }
 
 type TradeClassifyName struct {
-	ClassifyName string //分类名称
-	ClassifyType string //分类名称下的类型
+	ClassifyName string    //分类名称
+	ClassifyType string    //分类名称下的类型
+	DataTime     time.Time //数据最近的日期
 }
 
 // GetExchangeClassify 获取交易所分类列表
@@ -246,7 +255,7 @@ func GetExchangeClassify(exchange string) (list []TradeClassifyName, err error)
 	if exchange == "zhengzhou" {
 		orderStr = "classify_name asc"
 	}
-	sql := `SELECT classify_name, classify_type FROM ` + tableName + ` WHERE rank <=20 and rank > 0 GROUP BY classify_name, classify_type  `
+	sql := `SELECT classify_name, classify_type,MAX(data_time) data_time FROM ` + tableName + ` WHERE rank <=20 and rank > 0 GROUP BY classify_name, classify_type  `
 	sql += ` ORDER BY ` + orderStr
 
 	o := orm.NewOrmUsingDB("data")

+ 10 - 3
services/data/trade_position_analysis.go

@@ -45,10 +45,10 @@ func InitPositionTask(cont context.Context) (err error) {
 			utils.FileLog.Info(fmt.Sprintf("获取所有交易所分类失败,;err:%s", tmpErr.Error()))
 			return
 		}
-		tradeClassifyMap := make(map[string]int)
+		tradeClassifyMap := make(map[string]*data_manage.BaseFromTradeClassify)
 		for _, v := range allBaseFromTradeClassify {
 			key := fmt.Sprintf("%s_%s_%s", v.Exchange, v.ClassifyName, v.ClassifyType)
-			tradeClassifyMap[key] = 1
+			tradeClassifyMap[key] = v
 		}
 
 		baseFromTradeClassifyList := make([]*data_manage.BaseFromTradeClassify, 0)
@@ -62,15 +62,22 @@ func InitPositionTask(cont context.Context) (err error) {
 			for _, classify := range tradeClassifyNameList {
 				key := fmt.Sprintf("%s_%s_%s", v, classify.ClassifyName, classify.ClassifyType)
 
-				if _, ok := tradeClassifyMap[key]; !ok {
+				if tradeClassify, ok := tradeClassifyMap[key]; !ok {
 					baseFromTradeClassifyList = append(baseFromTradeClassifyList, &data_manage.BaseFromTradeClassify{
 						Id:           0,
 						ClassifyName: classify.ClassifyName,
 						ClassifyType: classify.ClassifyType,
 						Exchange:     v,
+						LatestDate:   classify.DataTime,
 						CreateTime:   time.Now(),
 						ModifyTime:   time.Now(),
 					})
+				} else {
+					if tradeClassify.LatestDate.Before(classify.DataTime) {
+						tradeClassify.LatestDate = classify.DataTime
+						tradeClassify.ModifyTime = time.Now()
+						tradeClassify.Update([]string{"LatestDate", "ModifyTime"})
+					}
 				}
 			}
 		}