From f2600973a2317099f1c81b58df52a8e8aaf3e444 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 01 Mar 2021 14:40:21 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
index 4f2d1cd..45e55c9 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -233,7 +233,7 @@
holdOrderEntity.setOpeningPrice(openingPrice);
holdOrderEntity.setOpeningType(submitOrderDto.getOrderType());
holdOrderEntity.setMarkPrice(newPrice);
- holdOrderEntity.setIsCanClosing(ContractHoldOrderEntity.ORDER_CAN_CLOSING_N);
+ holdOrderEntity.setIsCanClosing(ContractHoldOrderEntity.ORDER_CAN_CLOSING_Y);
holdOrderEntity.setPrePaymentAmount(prePaymentAmount);
holdOrderEntity.setBondAmount(bondAmount.add(openFeePrice));
holdOrderEntity.setOperateNo(1);
@@ -320,7 +320,7 @@
FollowTraderInfoEntity tradeInfo = null;
if (MemberEntity.IS_TRADER_Y.equals(memberEntity.getIsTrader())) {
tradeInfo = followTraderInfoDao.selectTraderInfoByMemberId(memberEntity.getId());
- if (tradeInfo.getIsOpen().equals(FollowTraderInfoEntity.ISOPEN_Y)) {
+ if (FollowTraderInfoEntity.ISOPEN_Y.equals(tradeInfo.getIsOpen())) {
isOpenFollow = true;
}
}
@@ -525,7 +525,7 @@
BigDecimal totalEntrustAmount = BigDecimal.ZERO;
if (CollUtil.isNotEmpty(entrustOrder)) {
for (ContractEntrustOrderEntity contractEntrustOrderEntity : entrustOrder) {
- totalEntrustAmount.add(contractEntrustOrderEntity.getEntrustAmount());
+ totalEntrustAmount = totalEntrustAmount.add(contractEntrustOrderEntity.getEntrustAmount());
}
}
BigDecimal riskRatio = totalHoldBond.divide(walletContractEntity.getTotalBalance().add(totalProfitOrLoss).subtract(totalEntrustAmount), 4, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100));
@@ -864,6 +864,14 @@
equity = BigDecimal.ZERO;
}
+ BigDecimal available = walletContractEntity.getAvailableBalance();
+ if (totalProfitOrLess.compareTo(BigDecimal.ZERO) <= 0) {
+ available = available.add(totalProfitOrLess);
+ if (available.compareTo(BigDecimal.ZERO) <= 0) {
+ available = BigDecimal.ZERO;
+ }
+ }
+
// 获取当日k线的开盘价
Candlestick symbolObject = (Candlestick) redisUtils.get(symbol);
BigDecimal openPrice = symbolObject.getOpen();
@@ -871,7 +879,7 @@
contractMoneyInfoVo.setBeUsedBondAmount(beUsedBondAmount);
contractMoneyInfoVo.setFrozenBondAmount(frozenBondAmount);
contractMoneyInfoVo.setEquity(equity);
- contractMoneyInfoVo.setAvailableBalance(walletContractEntity.getAvailableBalance());
+ contractMoneyInfoVo.setAvailableBalance(available);
contractMoneyInfoVo.setFeeRatio(tradeSetting.getFeeRatio());
contractMoneyInfoVo.setLeverAgeRatio(tradeSetting.getLeverageRatio());
contractMoneyInfoVo.setNewPrice(newPriceSymbol);
@@ -1061,8 +1069,10 @@
holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1);
contractHoldOrderDao.updateById(holdOrderEntity);
- // 发送爆仓消息
- sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());
+ if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == holdOrderEntity.getPositionType()) {
+ // 发送爆仓消息
+ sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId());
+ }
}
}
}
--
Gitblit v1.9.1