1
This commit is contained in:
@ -3,8 +3,6 @@ package jobs
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/jinzhu/copier"
|
|
||||||
"github.com/shopspring/decimal"
|
|
||||||
"go-admin/app/admin/models"
|
"go-admin/app/admin/models"
|
||||||
"go-admin/app/admin/service"
|
"go-admin/app/admin/service"
|
||||||
"go-admin/app/admin/service/dto"
|
"go-admin/app/admin/service/dto"
|
||||||
@ -17,6 +15,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/jinzhu/copier"
|
||||||
|
"github.com/shopspring/decimal"
|
||||||
|
|
||||||
"github.com/go-admin-team/go-admin-core/sdk"
|
"github.com/go-admin-team/go-admin-core/sdk"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
|
||||||
@ -174,7 +175,6 @@ func (t LimitOrderTimeoutDuration) Exec(arg interface{}) error {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//合约
|
//合约
|
||||||
|
|||||||
@ -364,7 +364,7 @@ func handleTakeProfit(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
|||||||
|
|
||||||
ids := []int{preOrder.Pid, preOrder.MainId}
|
ids := []int{preOrder.Pid, preOrder.MainId}
|
||||||
//主单止盈成交
|
//主单止盈成交
|
||||||
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ?", ids).Update("status", 9).Error; err != nil {
|
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ? AND order_type=0", ids).Update("status", 9).Error; err != nil {
|
||||||
logger.Errorf("主单止盈成功修改主单状态失败 订单号:%s:", err)
|
logger.Errorf("主单止盈成功修改主单状态失败 订单号:%s:", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -469,6 +469,16 @@ func handleFutMainOrderFilled(db *gorm.DB, preOrder *models.LinePreOrder) {
|
|||||||
num = num.Truncate(int32(tradeSet.AmountDigit))
|
num = num.Truncate(int32(tradeSet.AmountDigit))
|
||||||
order.Price = price.String()
|
order.Price = price.String()
|
||||||
|
|
||||||
|
if order.OrderType == 4 {
|
||||||
|
ext := DbModels.LinePreOrderExt{}
|
||||||
|
db.Model(&ext).Where("order_id=?", preOrder.Id).Find(&ext)
|
||||||
|
|
||||||
|
if ext.ReduceNumRatio.Cmp(decimal.Zero) > 0 {
|
||||||
|
num = num.Mul(ext.ReduceNumRatio.Div(decimal.NewFromInt(100))).Truncate(int32(tradeSet.AmountDigit))
|
||||||
|
order.Num = num.String()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if err := db.Model(&order).Update("num", num).Error; err != nil {
|
if err := db.Model(&order).Update("num", num).Error; err != nil {
|
||||||
logger.Errorf("修改止盈止损数量失败 订单号:%s err:%v", order.OrderSn, err)
|
logger.Errorf("修改止盈止损数量失败 订单号:%s err:%v", order.OrderSn, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -434,7 +434,7 @@ func handleSpotTakeProfitFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
|||||||
|
|
||||||
db.Transaction(func(tx *gorm.DB) error {
|
db.Transaction(func(tx *gorm.DB) error {
|
||||||
ids := []int{preOrder.Pid, preOrder.MainId}
|
ids := []int{preOrder.Pid, preOrder.MainId}
|
||||||
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ? AND status =6", ids).Update("status", 9).Error; err != nil {
|
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ? AND status =6 AND order_type=0", ids).Update("status", 9).Error; err != nil {
|
||||||
logger.Errorf("止盈订单回调失败, 回调订单号:%s 更新主单失败:%v", preOrder.OrderSn, err)
|
logger.Errorf("止盈订单回调失败, 回调订单号:%s 更新主单失败:%v", preOrder.OrderSn, err)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
|
|||||||
Reference in New Issue
Block a user