1
This commit is contained in:
@ -276,6 +276,16 @@ func getFuturesPositionNum(apiUserInfo DbModels.LineApiUser, preOrder *DbModels.
|
||||
// 平仓单成交
|
||||
func handleClosePosition(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
removeFutLossAndAddPosition(preOrder)
|
||||
|
||||
futApi := FutRestApi{}
|
||||
apiUserInfo, _ := GetApiInfo(preOrder.ApiId)
|
||||
|
||||
if apiUserInfo.Id > 0 {
|
||||
if err := futApi.CancelAllFutOrder(apiUserInfo, preOrder.Symbol); err != nil {
|
||||
logger.Errorf("止盈单成功 取消其它订单失败 订单号:%s:", err)
|
||||
}
|
||||
}
|
||||
|
||||
ids := []int{preOrder.Pid, preOrder.MainId}
|
||||
//主单止盈成交
|
||||
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ?", ids).Update("status", 9).Error; err != nil {
|
||||
@ -286,6 +296,20 @@ func handleClosePosition(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
// 止损单成交
|
||||
func handleStopLoss(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
removeFutLossAndAddPosition(preOrder)
|
||||
|
||||
spotApi := SpotRestApi{}
|
||||
apiUserInfo, _ := GetApiInfo(preOrder.ApiId)
|
||||
|
||||
if apiUserInfo.Id > 0 {
|
||||
req := CancelOpenOrdersReq{
|
||||
Symbol: preOrder.Symbol,
|
||||
ApiId: preOrder.ApiId,
|
||||
}
|
||||
if err := spotApi.CancelOpenOrders(db, req); err != nil {
|
||||
logger.Errorf("止盈单成功 取消其它订单失败 订单号:%s:", err)
|
||||
}
|
||||
}
|
||||
|
||||
ids := []int{preOrder.Pid, preOrder.MainId}
|
||||
//主单止损成交
|
||||
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ?", ids).Update("status", 9).Error; err != nil {
|
||||
@ -297,6 +321,15 @@ func handleStopLoss(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
func handleTakeProfit(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
removeFutLossAndAddPosition(preOrder)
|
||||
|
||||
futApi := FutRestApi{}
|
||||
apiUserInfo, _ := GetApiInfo(preOrder.ApiId)
|
||||
|
||||
if apiUserInfo.Id > 0 {
|
||||
if err := futApi.CancelAllFutOrder(apiUserInfo, preOrder.Symbol); err != nil {
|
||||
logger.Errorf("止盈单成功 取消其它订单失败 订单号:%s:", err)
|
||||
}
|
||||
}
|
||||
|
||||
ids := []int{preOrder.Pid, preOrder.MainId}
|
||||
//主单止盈成交
|
||||
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ? AND order_type=0", ids).Update("status", 9).Error; err != nil {
|
||||
|
||||
@ -136,6 +136,19 @@ func handleOrderByType(db *gorm.DB, preOrder *DbModels.LinePreOrder, orderStatus
|
||||
if err := db.Model(&DbModels.LinePreOrder{}).Where("main_id =? AND status =0", preOrder.MainId).Update("status", 4).Error; err != nil {
|
||||
logger.Errorf("主单止损回调 订单号:%s 修改主单状态失败:%v", preOrder.OrderSn, err)
|
||||
}
|
||||
|
||||
spotApi := SpotRestApi{}
|
||||
apiUserInfo, _ := GetApiInfo(preOrder.ApiId)
|
||||
|
||||
if apiUserInfo.Id > 0 {
|
||||
req := CancelOpenOrdersReq{
|
||||
Symbol: preOrder.Symbol,
|
||||
ApiId: preOrder.ApiId,
|
||||
}
|
||||
if err := spotApi.CancelOpenOrders(db, req); err != nil {
|
||||
logger.Errorf("止盈单成功 取消其它订单失败 订单号:%s:", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -361,16 +374,41 @@ func handleMainOrderClosePosition(db *gorm.DB, preOrder *DbModels.LinePreOrder)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
removeSpotLossAndAddPosition(preOrder)
|
||||
|
||||
spotApi := SpotRestApi{}
|
||||
apiUserInfo, _ := GetApiInfo(preOrder.ApiId)
|
||||
|
||||
if apiUserInfo.Id > 0 {
|
||||
req := CancelOpenOrdersReq{
|
||||
Symbol: preOrder.Symbol,
|
||||
ApiId: preOrder.ApiId,
|
||||
}
|
||||
if err := spotApi.CancelOpenOrders(db, req); err != nil {
|
||||
logger.Errorf("止盈单成功 取消其它订单失败 订单号:%s:", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 止盈成交
|
||||
func handleSpotTakeProfitFilled(db *gorm.DB, preOrder *DbModels.LinePreOrder) {
|
||||
removeSpotLossAndAddPosition(preOrder)
|
||||
|
||||
spotApi := SpotRestApi{}
|
||||
apiUserInfo, _ := GetApiInfo(preOrder.ApiId)
|
||||
|
||||
if apiUserInfo.Id > 0 {
|
||||
req := CancelOpenOrdersReq{
|
||||
Symbol: preOrder.Symbol,
|
||||
ApiId: preOrder.ApiId,
|
||||
}
|
||||
if err := spotApi.CancelOpenOrders(db, req); err != nil {
|
||||
logger.Errorf("止盈单成功 取消其它订单失败 订单号:%s:", err)
|
||||
}
|
||||
}
|
||||
|
||||
db.Transaction(func(tx *gorm.DB) error {
|
||||
ids := []int{preOrder.Pid, preOrder.MainId}
|
||||
if err := db.Model(&DbModels.LinePreOrder{}).Where("id IN ? AND status =6 AND order_type=0", ids).Update("status", 9).Error; err != nil {
|
||||
|
||||
Reference in New Issue
Block a user