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
							 | 
						||
| 
								 | 
							
								}
							 |