Files
exchange_go/app/jobs/jobs_test.go
2025-03-27 16:18:32 +08:00

160 lines
4.3 KiB
Go

package jobs
import (
"fmt"
"go-admin/app/admin/models"
"go-admin/common/helper"
"go-admin/services/binanceservice"
"testing"
"github.com/go-admin-team/go-admin-core/sdk/config"
"github.com/shopspring/decimal"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
// 测试现货限价转市价订单
func TestSpotLimitTransferJob(t *testing.T) {
dsn := "root:123456@tcp(127.0.0.1:3306)/go_exchange_single?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
helper.InitDefaultRedis("127.0.0.1:6379", "", 2)
helper.InitLockRedisConn("127.0.0.1:6379", "", "3")
job := LimitOrderTimeoutDuration{}
orders := make([]models.LinePreOrder, 0)
err := db.Model(&models.LinePreOrder{}).
Where("order_sn =?", "393609596205268992").
Preload("Childs").
Find(&orders).Error
// job.Exec([]string{})
config.ApplicationConfig.Mode = "dev"
if err != nil {
fmt.Printf("获取订单失败 %v", err)
}
for _, order := range orders {
apiInfo, err := binanceservice.GetApiInfo(49)
if err != nil {
fmt.Printf("获取api信息失败 %v", err)
return
}
spotApi := binanceservice.SpotRestApi{}
err = job.ReSpotOrderPlace(db, order, apiInfo, spotApi)
if err != nil {
fmt.Printf("下单失败 %v", err)
}
}
select {}
}
// 测试限价转市价订单
func TestLimitTransferJob(t *testing.T) {
dsn := "root:123456@tcp(127.0.0.1:3306)/go_exchange_single?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
helper.InitDefaultRedis("127.0.0.1:6379", "", 2)
helper.InitLockRedisConn("127.0.0.1:6379", "", "3")
job := LimitOrderTimeoutDuration{}
orders := make([]models.LinePreOrder, 0)
err := db.Model(&models.LinePreOrder{}).
Where("order_sn =?", "393573282378416128").
Preload("Childs").
Find(&orders).Error
// job.Exec([]string{})
config.ApplicationConfig.Mode = "dev"
if err != nil {
fmt.Printf("获取订单失败 %v", err)
}
for _, order := range orders {
apiInfo, err := binanceservice.GetApiInfo(49)
if err != nil {
fmt.Printf("获取api信息失败 %v", err)
return
}
futApi := binanceservice.FutRestApi{}
err = job.ReFutOrderPlace(db, order, apiInfo, futApi)
if err != nil {
fmt.Printf("下单失败 %v", err)
}
}
select {}
}
func TestReduce(t *testing.T) {
dsn := "root:123456@tcp(127.0.0.1:3306)/go_exchange_single?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
gorm.Open(mysql.Open(dsn), &gorm.Config{})
helper.InitDefaultRedis("127.0.0.1:6379", "", 2)
helper.InitLockRedisConn("127.0.0.1:6379", "", "3")
futApi := binanceservice.FutRestApi{}
// params := binanceservice.FutOrderPlace{
// Symbol: "ADAUSDT",
// ApiId: 49,
// Side: ,
// }
apiInfo, err := binanceservice.GetApiInfo(49)
if err != nil {
fmt.Printf("获取api信息失败 %v", err)
return
}
err = futApi.ClosePositionLoop("ADAUSDT", "393573282378416128", decimal.NewFromInt(21), "SELL", "LONG", apiInfo, "LIMIT", "0", decimal.NewFromFloat(0.76), 3)
fmt.Printf("报错 %v", err)
}
// 测试现货下单
func TestReduceSpot(t *testing.T) {
dsn := "root:123456@tcp(127.0.0.1:3306)/go_exchange_single?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
helper.InitDefaultRedis("127.0.0.1:6379", "", 2)
helper.InitLockRedisConn("127.0.0.1:6379", "", "3")
spotApi := binanceservice.SpotRestApi{}
// params := binanceservice.FutOrderPlace{
// Symbol: "ADAUSDT",
// ApiId: 49,
// Side: ,
// }
apiInfo, err := binanceservice.GetApiInfo(49)
fmt.Sprintf("%v", apiInfo)
// if err != nil {
// fmt.Printf("获取api信息失败 %v", err)
// return
// }
err = spotApi.CancelOpenOrderByOrderSn(apiInfo, "ADAUSDT", "393609596188491776")
fmt.Printf("取消报错 %v", err)
params := binanceservice.OrderPlacementService{
ApiId: 49,
Side: "SELL",
Type: "LIMIT",
TimeInForce: "GTC",
Symbol: "ADAUSDT",
Price: decimal.NewFromFloat(0.76),
Quantity: decimal.NewFromInt(21),
NewClientOrderId: "393609596205268992",
}
err = spotApi.OrderPlaceLoop(db, params, 3)
fmt.Printf("报错 %v", err)
}