From abaa17a096732bd5177b3b93ee5ad73c2bff7e09 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 26 Mar 2021 10:03:33 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 15 +++++++++------ 1 files changed, 9 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 e88256e..f13702b 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 @@ -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"); @@ -926,10 +926,12 @@ } BigDecimal available = walletContractEntity.getAvailableBalance(); - if (totalProfitOrLess.compareTo(BigDecimal.ZERO) <= 0) { - available = available.add(totalProfitOrLess); - if (available.compareTo(BigDecimal.ZERO) <= 0) { - available = BigDecimal.ZERO; + if (ContractEntrustOrderEntity.POSITION_TYPE_ALL == memberEntity.getContractPositionType()) { + if (totalProfitOrLess.compareTo(BigDecimal.ZERO) <= 0) { + available = available.add(totalProfitOrLess); + if (available.compareTo(BigDecimal.ZERO) <= 0) { + available = BigDecimal.ZERO; + } } } @@ -1137,7 +1139,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()); @@ -1151,6 +1153,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