From 193f1047438a18f7d9be59eece3bfd5ec0bfe07a Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 14 Aug 2020 18:19:55 +0800
Subject: [PATCH] add whole close order
---
src/main/java/com/xcong/excoin/utils/CalculateUtil.java | 21 ++++++++-------------
1 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
index 1a4500d..53e5705 100644
--- a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
+++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -3,6 +3,7 @@
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONObject;
+import com.xcong.excoin.common.enumerates.CoinTypeEnum;
import com.xcong.excoin.common.enumerates.RabbitPriceTypeEnum;
import com.xcong.excoin.common.exception.GlobalException;
import com.xcong.excoin.common.response.Result;
@@ -96,8 +97,8 @@
Long memberId = memberEntity.getId();
BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(symbol);
PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
- MemberWalletContractEntity walletContract = walletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbol);
- List<ContractHoldOrderEntity> holdOrderEntities = holdOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberId, symbol, 2);
+ MemberWalletContractEntity walletContract = walletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name());
+ List<ContractHoldOrderEntity> holdOrderEntities = holdOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberId, symbol);
if (CollUtil.isNotEmpty(holdOrderEntities)) {
// 多单开仓价
BigDecimal moreOpenPrice = BigDecimal.ZERO;
@@ -109,7 +110,6 @@
int lessCnt = 0;
// 已实现盈亏
BigDecimal rewardAmount = BigDecimal.ZERO;
- List<ContractHoldOrderEntity> updateHoldOrders = new ArrayList<>();
for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
if (holdOrderEntity.getOpeningType() == ContractHoldOrderEntity.OPENING_TYPE_MORE) {
moreOpenPrice = holdOrderEntity.getOpeningPrice();
@@ -118,14 +118,8 @@
lessOpenPrice = holdOrderEntity.getOpeningPrice();
lessCnt = holdOrderEntity.getSymbolCntSale();
}
- ContractHoldOrderEntity updateHoldOrder = new ContractHoldOrderEntity();
- updateHoldOrder.setOperateNo(holdOrderEntity.getOperateNo());
- updateHoldOrder.setId(holdOrderEntity.getId());
- updateHoldOrder.setOpeningType(holdOrderEntity.getOpeningType());
- updateHoldOrder.setSymbol(holdOrderEntity.getSymbol());
- updateHoldOrders.add(updateHoldOrder);
- rewardAmount = rewardAmount.add(holdOrderEntity.getRewardAmount());
+ rewardAmount = rewardAmount.add(holdOrderEntity.getRewardAmount() == null ? BigDecimal.ZERO : holdOrderEntity.getRewardAmount());
log.info("rewardAmount : {}", rewardAmount);
}
@@ -146,13 +140,14 @@
BigDecimal forceSetPrice = divisor.divide(dividendOne.subtract(dividendTwo), 8, BigDecimal.ROUND_DOWN);
log.info("forceSetPrice : {}", forceSetPrice);
- for (ContractHoldOrderEntity updateHoldOrder : updateHoldOrders) {
+ for (ContractHoldOrderEntity updateHoldOrder : holdOrderEntities) {
updateHoldOrder.setForceClosingPrice(forceSetPrice);
holdOrderDao.updateById(updateHoldOrder);
- sendOrderBombMsg(updateHoldOrder.getId(), updateHoldOrder.getOpeningType(), forceSetPrice, updateHoldOrder.getSymbol(), updateHoldOrder.getOperateNo());
+ if (forceSetPrice.compareTo(BigDecimal.ZERO) >= 0) {
+ sendOrderBombMsg(updateHoldOrder.getId(), updateHoldOrder.getOpeningType(), forceSetPrice, updateHoldOrder.getSymbol(), updateHoldOrder.getOperateNo());
+ }
}
-
} else {
throw new GlobalException("强平价异常");
}
--
Gitblit v1.9.1