From 013641a0b4d052fdb0ea69a891df502498943a0b Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 28 Aug 2020 17:29:26 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   25 ++++++-------------------
 1 files changed, 6 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 d22f6a1..c98a008 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
@@ -164,23 +164,10 @@
         if (wholeHoldOrder != null) {
             BigDecimal totalPrice = openingPrice.multiply(BigDecimal.valueOf(submitOrderDto.getSymbolCnt()));
             // (当前开仓价*张数 + 原开仓价 * 原可平张数) / (张数 + 原可平张数)
-            BigDecimal newOpenPrice = totalPrice.add(wholeHoldOrder.getOpeningPrice().multiply(BigDecimal.valueOf(wholeHoldOrder.getSymbolCnt()))).divide(BigDecimal.valueOf(submitOrderDto.getSymbolCnt() + wholeHoldOrder.getSymbolCntSale()), 8, BigDecimal.ROUND_DOWN);
+            BigDecimal newOpenPrice = totalPrice.add(wholeHoldOrder.getOpeningPrice().multiply(BigDecimal.valueOf(wholeHoldOrder.getSymbolCntSale()))).divide(BigDecimal.valueOf(submitOrderDto.getSymbolCnt() + wholeHoldOrder.getSymbolCntSale()), 8, BigDecimal.ROUND_DOWN);
             log.info("计算后开仓价:{}", newOpenPrice);
-//            BigDecimal bondAmount = CalculateUtil.getBondAmount(newOpenPrice, lotNumber, submitOrderDto.getSymbolCnt() + wholeHoldOrder.getSymbolCntSale(), submitOrderDto.getLeverRatio());
-//            log.info("新保证金:{}", bondAmount);
             BigDecimal fee = openFeePrice.add(wholeHoldOrder.getOpeningFeeAmount());
             log.info("手续费相加:{}", fee);
-//            BigDecimal prePaymentAmount = bondAmount.add(fee).add(fee);
-//
-//            BigDecimal subBondAmount = bondAmount.subtract(wholeHoldOrder.getBondAmount()).subtract(wholeHoldOrder.getOpeningFeeAmount());
-//            log.info("保证金差值:{}", subBondAmount);
-//
-//            if (subBondAmount.compareTo(walletContract.getAvailableBalance()) > -1) {
-//                // 可用余额不足
-//                return Result.fail(MessageSourceUtils.getString("member_service_0085"));
-//            }
-
-
 
             ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(wholeHoldOrder);
             contractOrderEntity.setBondAmount(bondAmount.add(openFeePrice));
@@ -231,7 +218,6 @@
         holdOrderEntity.setSymbolCntSale(submitOrderDto.getSymbolCnt());
         holdOrderEntity.setSymbolSku(lotNumber);
         holdOrderEntity.setLeverRatio(submitOrderDto.getLeverRatio());
-//        holdOrderEntity.setForceClosingPrice(forceClosingPrice);
         holdOrderEntity.setOpeningFeeAmount(openFeePrice);
         holdOrderEntity.setOpeningPrice(openingPrice);
         holdOrderEntity.setOpeningType(submitOrderDto.getOrderType());
@@ -251,11 +237,8 @@
         if (i > 0) {
             memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
 
-            // 发送爆仓消息
-//            sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), forceClosingPrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo());
             // 发送预估强平价
             ThreadPoolUtils.sendWholeForceClosingPrice(submitOrderDto.getSymbol(), memberEntity);
-
             // 计算佣金
             ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
 
@@ -563,7 +546,6 @@
 
         // 更新可平张数
         holdOrderEntity.setSymbolCntSale(sub);
-        holdOrderEntity.setSymbolCnt(sub);
         contractHoldOrderDao.updateById(holdOrderEntity);
 
         // 将待平张数放入缓存
@@ -824,6 +806,11 @@
     @Override
     public Result changeLeverRate(ChangeLeverRateDto changeLeverRateDto) {
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+
+        List<ContractHoldOrderEntity> holdOrders = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberEntity.getId(), changeLeverRateDto.getSymbol());
+        if (CollUtil.isNotEmpty(holdOrders)) {
+            return Result.fail("存在持仓, 无法调整杠杆");
+        }
         MemberLevelRateEntity levelRateEntity = memberLevelRateDao.selectLeverRateByMemberIdAndSymbol(memberEntity.getId(), changeLeverRateDto.getSymbol());
         levelRateEntity.setLevelRateUp(changeLeverRateDto.getLeverRate());
         levelRateEntity.setLevelRateDown(changeLeverRateDto.getLeverRate());

--
Gitblit v1.9.1