From 0ac635934c85267ea44c043504b2cf67ef1302cf Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Thu, 04 Jun 2020 20:00:04 +0800
Subject: [PATCH] fix rabbit some bug
---
src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 8 ++------
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 25 +++++++++++++++----------
src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java | 2 +-
src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java | 7 +++++++
4 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java
index bdaef3e..86a2dbb 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderListVo.java
@@ -54,6 +54,9 @@
@ApiModelProperty(value = "可增加的最大保证金")
private BigDecimal canAddMaxBond;
+ @ApiModelProperty(value = "可减少最大保证金")
+ private BigDecimal canReduceMaxBond;
+
public BigDecimal getOpeningPrice() {
return openingPrice.setScale(4, BigDecimal.ROUND_DOWN);
}
@@ -69,4 +72,8 @@
public BigDecimal getCanAddMaxBond() {
return canAddMaxBond.setScale(4, BigDecimal.ROUND_DOWN);
}
+
+ public BigDecimal getCanReduceMaxBond() {
+ return canReduceMaxBond.setScale(4, BigDecimal.ROUND_DOWN);
+ }
}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
index 3e6f326..7bfdde4 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
@@ -121,7 +121,7 @@
int i = contractEntrustOrderDao.insert(entrustOrderEntity);
- memberWalletContractDao.increaseWalletContractBalanceById(entrustTotalAmount.negate(), null, entrustTotalAmount, walletContract.getId());
+ memberWalletContractDao.increaseWalletContractBalanceById(entrustTotalAmount.negate(), null, entrustOrderEntity.getBondAmount(), walletContract.getId());
if (i > 0) {
// 发送委托单队列消息
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 f6c8e47..35f39b2 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
@@ -159,14 +159,13 @@
contractOrderEntity.setOpeningTime(new Date());
contractHoldOrderDao.insert(holdOrderEntity);
int i = contractOrderDao.insert(contractOrderEntity);
- memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), null, null, walletContract.getId());
-
- // 计算佣金
- ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
if (i > 0) {
- return Result.ok("success");
+ memberWalletContractDao.increaseWalletContractBalanceById(prePaymentAmount.negate(), openFeePrice.negate(), null, walletContract.getId());
+ // 计算佣金
+ ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getOpeningFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN);
+ return Result.ok("提交成功");
}
- return Result.fail("fail");
+ return Result.fail("提交失败");
}
@Override
@@ -189,6 +188,7 @@
MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
List<ContractHoldOrderEntity> list = contractHoldOrderDao.selectHoldOrderListByMemberIdAndSymbol(memberEntity.getId(), symbol);
+ MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), CoinTypeEnum.USDT.name());
if (CollUtil.isNotEmpty(list)) {
BigDecimal totalProfitOrLoss = BigDecimal.ZERO;
List<HoldOrderListVo> resultList = new ArrayList<>();
@@ -228,12 +228,17 @@
.divide(new BigDecimal(holdOrderEntity.getLeverRatio()), 8, BigDecimal.ROUND_DOWN);
// 可增加最大保证金
- BigDecimal canAddMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).subtract(costPrice);
- if (canAddMaxBond.compareTo(BigDecimal.ZERO) < 0) {
- canAddMaxBond = BigDecimal.ZERO;
+// BigDecimal canAddMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).subtract(costPrice);
+// if (canAddMaxBond.compareTo(BigDecimal.ZERO) < 0) {
+// canAddMaxBond = BigDecimal.ZERO;
+// }
+ BigDecimal canReduceMaxBond = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getPrePaymentAmount());
+ if (canReduceMaxBond.compareTo(BigDecimal.ZERO) < 0) {
+ canReduceMaxBond = BigDecimal.ZERO;
}
- holdOrderListVo.setCanAddMaxBond(canAddMaxBond);
+ holdOrderListVo.setCanReduceMaxBond(canReduceMaxBond);
+ holdOrderListVo.setCanAddMaxBond(walletContractEntity.getAvailableBalance());
holdOrderListVo.setReturnRate(returnRate);
holdOrderListVo.setProfitOrLoss(rewardRatio);
resultList.add(holdOrderListVo);
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
index c103753..ebba922 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -134,13 +134,9 @@
contractOrderDao.insert(contractOrderEntity);
// 计算盈利或亏损后可用金额和总金额应该增加或减少的
- BigDecimal addMoney = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningPrice()).add(profitOrLoss);
- log.info("平仓增加金额:{}", addMoney);
+ BigDecimal addMoney = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).add(profitOrLoss);
- walletContract.setFrozenBalance(walletContract.getFrozenBalance().subtract(holdOrderEntity.getBondAmount()));
- walletContract.setAvailableBalance(walletContract.getAvailableBalance().add(addMoney));
- walletContract.setTotalBalance(walletContract.getTotalBalance().add(addMoney));
-
+ memberWalletContractDao.increaseWalletContractBalanceById(addMoney, profitOrLoss.subtract(contractOrderEntity.getOpeningFeeAmount()), null, walletContract.getId());
// 计算佣金
ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getClosingFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_CLOSE);
}
--
Gitblit v1.9.1