From 3d0aa53f29bf42e9f2a28cdbbd109f0e9bb86e7c Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 26 Mar 2021 18:17:27 +0800
Subject: [PATCH] 20210326  交易员列表定时器

---
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 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 9c93699..7a9967d 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
@@ -499,7 +499,7 @@
                 }
 
                 // 回报率
-                BigDecimal returnRate = rewardRatio.divide(holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getPrePaymentAmount()), 8, BigDecimal.ROUND_DOWN);
+                BigDecimal returnRate = rewardRatio.divide(holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()), 8, BigDecimal.ROUND_DOWN);
 
                 // 成本价格
                 BigDecimal costPrice = holdOrderEntity.getOpeningPrice()
@@ -512,7 +512,7 @@
 //                if (canAddMaxBond.compareTo(BigDecimal.ZERO) < 0) {
 //                    canAddMaxBond = BigDecimal.ZERO;
 //                }
-                BigDecimal canReduceMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount());
+                BigDecimal canReduceMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getPrePaymentAmount());
 
                 if (rewardRatio.compareTo(BigDecimal.ZERO) < 0) {
                     canReduceMaxBond = canReduceMaxBond.add(rewardRatio);
@@ -549,7 +549,7 @@
             }
 
             result.put("hold", resultList);
-            result.put("totalProfitOrLoss", totalProfitOrLoss.setScale(4, BigDecimal.ROUND_DOWN).toPlainString());
+            result.put("totalProfitOrLoss", totalProfitOrLoss.setScale(2, BigDecimal.ROUND_DOWN).toPlainString());
             return Result.ok(result);
         }
         return Result.ok("success");
@@ -859,7 +859,7 @@
         BigDecimal newPriceSymbol = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
 
         List<ContractEntrustOrderEntity> entrustOrderEntities = contractEntrustOrderDao.selectEntrustOrderListByMemberId(memberEntity.getId());
-        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberId(memberEntity.getId());
+        List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbolTest(memberEntity.getId(), ContractOrderEntity.CONTRACTTYPE_NORMAL);
         MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
 //        if (memberEntity.getContractPositionType().equals(ContractEntrustOrderEntity.POSITION_TYPE_ADD)) {
 //            // 当前合约委托单
@@ -951,6 +951,7 @@
         contractMoneyInfoVo.setLeverRate(rateEntity.getLevelRateUp());
         contractMoneyInfoVo.setMoreBondAmount(moreBondAmount);
         contractMoneyInfoVo.setLessBondAmount(lessBondAmount);
+        contractMoneyInfoVo.setProfitOrLess(totalProfitOrLess);
         return Result.ok(contractMoneyInfoVo);
     }
 
@@ -1139,7 +1140,7 @@
                     holdAmount = BigDecimal.ZERO;
                 }
 
-                BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().multiply(tradeSettingEntity.getDoingRatio());
+                BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio());
                 log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold);
 
                 MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId());
@@ -1153,6 +1154,7 @@
                 holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1);
                 contractHoldOrderDao.updateById(holdOrderEntity);
 
+                memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, 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