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 }