126 lines
2.6 KiB
Go
126 lines
2.6 KiB
Go
|
|
package jobs
|
||
|
|
|
||
|
|
import (
|
||
|
|
"errors"
|
||
|
|
"go-admin/app/admin/models"
|
||
|
|
"go-admin/app/admin/service"
|
||
|
|
"go-admin/app/admin/service/dto"
|
||
|
|
"go-admin/services/fileservice"
|
||
|
|
"strconv"
|
||
|
|
"strings"
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/go-admin-team/go-admin-core/sdk"
|
||
|
|
"gorm.io/gorm"
|
||
|
|
|
||
|
|
"github.com/go-admin-team/go-admin-core/logger"
|
||
|
|
)
|
||
|
|
|
||
|
|
type InitFuturesSymbol struct {
|
||
|
|
}
|
||
|
|
|
||
|
|
type InitSpotSymbol struct {
|
||
|
|
}
|
||
|
|
|
||
|
|
type ClearLogJob struct {
|
||
|
|
}
|
||
|
|
|
||
|
|
type AutoPlaceOrder struct {
|
||
|
|
}
|
||
|
|
|
||
|
|
// 初始化合约交易对
|
||
|
|
func (t InitFuturesSymbol) Exec(arg interface{}) error {
|
||
|
|
str := time.Now().Format(timeFormat) + " [INFO] JobCore InitFuturesSymbol exec success"
|
||
|
|
defer logger.Info(str)
|
||
|
|
dbs := sdk.Runtime.GetDb()
|
||
|
|
var db *gorm.DB
|
||
|
|
|
||
|
|
for _, item := range dbs {
|
||
|
|
db = item
|
||
|
|
break
|
||
|
|
}
|
||
|
|
|
||
|
|
symbolService := service.LineSymbol{}
|
||
|
|
symbolService.Orm = db
|
||
|
|
|
||
|
|
//重置合约交易对
|
||
|
|
symbolService.ResetFuturesSymbol()
|
||
|
|
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// 初始化现货交易对
|
||
|
|
func (t InitSpotSymbol) Exec(arg interface{}) error {
|
||
|
|
str := time.Now().Format(timeFormat) + " [INFO] JobCore InitSpotSymbol exec success"
|
||
|
|
defer logger.Info(str)
|
||
|
|
|
||
|
|
dbs := sdk.Runtime.GetDb()
|
||
|
|
var db *gorm.DB
|
||
|
|
|
||
|
|
for _, item := range dbs {
|
||
|
|
db = item
|
||
|
|
break
|
||
|
|
}
|
||
|
|
|
||
|
|
symbolService := service.LineSymbol{}
|
||
|
|
symbolService.Orm = db
|
||
|
|
|
||
|
|
//重置现货交易对
|
||
|
|
symbolService.ResetSpotSymbol()
|
||
|
|
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// 删除过期日志
|
||
|
|
func (t ClearLogJob) Exec(arg interface{}) error {
|
||
|
|
str := time.Now().Format(timeFormat) + " [INFO] JobCore ClearLogJob exec success"
|
||
|
|
defer logger.Info(str)
|
||
|
|
var db *gorm.DB
|
||
|
|
|
||
|
|
for _, item := range sdk.Runtime.GetDb() {
|
||
|
|
db = item
|
||
|
|
break
|
||
|
|
}
|
||
|
|
|
||
|
|
fileservice.ClearLogs(db)
|
||
|
|
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// Exec 执行自动下单
|
||
|
|
func (t AutoPlaceOrder) Exec(arg interface{}) error {
|
||
|
|
str := time.Now().Format(timeFormat) + " [INFO] JobCore ClearLogJob exec success"
|
||
|
|
defer logger.Info(str)
|
||
|
|
var db *gorm.DB
|
||
|
|
|
||
|
|
for _, item := range sdk.Runtime.GetDb() {
|
||
|
|
db = item
|
||
|
|
break
|
||
|
|
}
|
||
|
|
var templateLogs []models.LineOrderTemplateLogs
|
||
|
|
db.Model(&models.LineOrderTemplateLogs{}).Where("switch = '1'").Find(&templateLogs)
|
||
|
|
if len(templateLogs) > 0 {
|
||
|
|
ids := make([]string, len(templateLogs))
|
||
|
|
for _, log := range templateLogs {
|
||
|
|
ids = append(ids, strconv.Itoa(log.Id))
|
||
|
|
}
|
||
|
|
req := dto.QuickAddPreOrderReq{Ids: strings.Join(ids, ",")}
|
||
|
|
preOrderService := service.LinePreOrder{}
|
||
|
|
preOrderService.Orm = db
|
||
|
|
errs := make([]error, 0)
|
||
|
|
errStr := make([]string, 0)
|
||
|
|
err := preOrderService.QuickAddPreOrder(&req, nil, &errs)
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
if len(errs) > 0 {
|
||
|
|
//e.Logger.Error(err)
|
||
|
|
for _, err2 := range errs {
|
||
|
|
errStr = append(errStr, err2.Error())
|
||
|
|
}
|
||
|
|
return errors.New(strings.Join(errStr, ","))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|