From fe3f5b8061b40803c93a91940d17088b7080c5ec Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 29 Oct 2020 11:14:22 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
index db65c8c..ad1cae7 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
import com.xcong.excoin.common.contants.AppContants;
import com.xcong.excoin.common.enumerates.CoinTypeEnum;
import com.xcong.excoin.common.enumerates.OrderClosingTypeEnum;
@@ -299,6 +300,8 @@
// 保证金
BigDecimal bondAmount = CalculateUtil.getBondAmount(holdOrderEntity.getOpeningPrice(), lotNumber, closeCnt, holdOrderEntity.getLeverRatio());
+ BigDecimal rewardRatio = profitOrLoss.divide(bondAmount, 8, BigDecimal.ROUND_DOWN);
+
log.info("bondAmount:{}", bondAmount);
// 平仓手续费 TODO 可能需要修复手续费
BigDecimal fee = BigDecimal.ZERO;
@@ -319,6 +322,7 @@
contractOrderEntity.setRewardAmount(profitOrLoss);
contractOrderEntity.setBondAmount(bondAmount);
contractOrderEntity.setClosingFeeAmount(fee);
+ contractOrderEntity.setRewardRatio(rewardRatio);
contractOrderDao.insert(contractOrderEntity);
if (holdOrderEntity.getSymbolCntSale() != 0) {
@@ -375,7 +379,7 @@
log.info("执行平仓委托");
Long memberId = entrustOrder.getMemberId();
- int orderType = entrustOrder.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_MORE ? ContractHoldOrderEntity.OPENING_TYPE_MORE : ContractHoldOrderEntity.OPENING_TYPE_LESS;
+ int orderType = entrustOrder.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_MORE ? ContractOrderEntity.ORDER_TYPE_CLOSE_MORE : ContractOrderEntity.ORDER_TYPE_CLOSE_LESS;
String symbol = entrustOrder.getSymbol();
MemberEntity memberEntity = memberDao.selectById(memberId);
@@ -387,6 +391,13 @@
int closeCnt = entrustOrder.getSymbolCnt();
ContractHoldOrderEntity holdOrderEntity = contractHoldOrderDao.selectWholeHoldOrderByOrderType(memberId, orderType, symbol);
+
+ List<Object> types = redisUtils.lGet(AppContants.RABBIT_TYPE + holdOrderEntity.getId(), 0, -1);
+ if(types.contains(9) || types.contains(10) || types.contains(11) || types.contains(12)) {
+ log.info("存在止盈/止损 orderId : {}, types : {}", holdOrderEntity.getId(), JSONObject.toJSONString(types));
+ return;
+ }
+
BigDecimal profitOrLoss;
int closingType;
// 平多
--
Gitblit v1.9.1