From ff3b5b9f78334cdf2ab7b17913b80447424b86dd Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 29 Aug 2020 15:35:21 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 2 +-
src/main/java/com/xcong/excoin/utils/CalculateUtil.java | 31 +++++++++++++------------------
2 files changed, 14 insertions(+), 19 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 baea777..b02fbb5 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
@@ -184,7 +184,7 @@
wholeHoldOrder.setSymbolCnt(wholeHoldOrder.getSymbolCnt() + submitOrderDto.getSymbolCnt());
wholeHoldOrder.setSymbolCntSale(wholeHoldOrder.getSymbolCntSale() + submitOrderDto.getSymbolCnt());
wholeHoldOrder.setPrePaymentAmount(prePaymentAmount.add(wholeHoldOrder.getPrePaymentAmount()));
- wholeHoldOrder.setOperateNo(wholeHoldOrder.getOperateNo() + 1);
+ wholeHoldOrder.setOperateNo(wholeHoldOrder.getOperateNo());
int i = contractHoldOrderDao.updateById(wholeHoldOrder);
if (i > 0) {
memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
index 15a21e8..9fe8e31 100644
--- a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
+++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -86,27 +86,24 @@
/**
* 全仓模式 -- 预估强平价
* 面值*(多单张数*多单开仓价-空单张数*空单开仓价)-余额-已实现盈亏 / 面值*(多单张数-空单张数)-(维持保证金率+TAKER手续费)*面值*(开多张数+开空张数)
- *
*/
public static void getForceSetPriceForWhole(@NotNull String symbol, @NotNull MemberEntity memberEntity) {
ContractHoldOrderDao holdOrderDao = SpringContextHolder.getBean(ContractHoldOrderDao.class);
MemberWalletContractDao walletContractDao = SpringContextHolder.getBean(MemberWalletContractDao.class);
- CacheSettingUtils cacheSettingUtils = SpringContextHolder.getBean(CacheSettingUtils.class);
Long memberId = memberEntity.getId();
- BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(symbol);
- PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
MemberWalletContractEntity walletContract = walletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeConvert.convertContractTypeToCoin(symbol));
List<ContractHoldOrderEntity> holdOrderEntities = holdOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberId, symbol);
if (CollUtil.isNotEmpty(holdOrderEntities)) {
int maxCnt = 0;
int subCnt = 0;
- int index = 0;
BigDecimal openPrice = BigDecimal.ZERO;
int type = 1;
BigDecimal feeAmount = BigDecimal.ZERO;
BigDecimal sku = BigDecimal.ZERO;
+ Long id = 0L;
+ int operateNo = 0;
for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) {
if (holdOrderEntity.getSymbolCntSale() >= maxCnt) {
int temp = maxCnt;
@@ -114,18 +111,14 @@
subCnt = holdOrderEntity.getSymbolCntSale() - temp;
openPrice = holdOrderEntity.getOpeningPrice();
type = holdOrderEntity.getOpeningType();
- index++;
- log.info("--{}, {}, {}, {}, {}", maxCnt, subCnt, openPrice, type, index);
+
+ id = holdOrderEntity.getId();
+ operateNo = holdOrderEntity.getOperateNo() + 1;
+ } else {
+ subCnt = maxCnt - holdOrderEntity.getSymbolCntSale();
}
- if (index == 0) {
- index ++;
- maxCnt = holdOrderEntity.getSymbolCntSale();
- subCnt = holdOrderEntity.getSymbolCntSale();
- type = holdOrderEntity.getOpeningType();
- openPrice = holdOrderEntity.getOpeningPrice();
- log.info("---{}, {}, {}, {}, {}", maxCnt, subCnt, type, openPrice, index);
- }
+ log.info("--{}, {}, {}, {}", maxCnt, subCnt, openPrice, type);
feeAmount = feeAmount.add(holdOrderEntity.getOpeningFeeAmount());
sku = holdOrderEntity.getSymbolSku();
}
@@ -139,11 +132,13 @@
for (ContractHoldOrderEntity updateHoldOrder : holdOrderEntities) {
updateHoldOrder.setForceClosingPrice(forceSetPrice);
updateHoldOrder.setIsCanClosing(ContractHoldOrderEntity.ORDER_CAN_CLOSING_Y);
+ updateHoldOrder.setOperateNo(operateNo);
holdOrderDao.updateById(updateHoldOrder);
+ }
- if (forceSetPrice.compareTo(BigDecimal.ZERO) > 0) {
-// sendOrderBombMsg(updateHoldOrder.getId(), updateHoldOrder.getOpeningType(), forceSetPrice, updateHoldOrder.getSymbol(), updateHoldOrder.getOperateNo());
- }
+
+ if (forceSetPrice.compareTo(BigDecimal.ZERO) > 0) {
+ sendOrderBombMsg(id, type, forceSetPrice, symbol, operateNo);
}
}
}
--
Gitblit v1.9.1