From 7b1e6c513da5799fd1e6ed478af785ee8c6b0589 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 29 Mar 2021 17:08:33 +0800 Subject: [PATCH] Merge branch 'activity' of http://120.27.238.55:7000/r/exchange into activity --- src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java | 34 ++++++++++++++++++++-------------- 1 files changed, 20 insertions(+), 14 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 7a9967d..c3a3262 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 @@ -1135,29 +1135,35 @@ if (CollUtil.isNotEmpty(list)) { for (ContractHoldOrderEntity holdOrderEntity : list) { + BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio()); + MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(holdOrderEntity.getMemberId(), CoinTypeEnum.USDT.name()); + log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold); + BigDecimal holdAmount = holdOrderEntity.getHoldAmount(); if (holdAmount == null) { holdAmount = BigDecimal.ZERO; } - BigDecimal thisTimeHold = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).multiply(tradeSettingEntity.getDoingRatio()); - log.info("订单编号:{}, 持仓费:{}", holdOrderEntity.getOrderNo(), thisTimeHold); - - MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId()); - BigDecimal subBond = holdOrderEntity.getBondAmount().subtract(thisTimeHold); - - BigDecimal newForcePrice = CalculateUtil.getForceSetPrice(subBond.subtract(holdOrderEntity.getOpeningFeeAmount()), holdOrderEntity.getOpeningPrice(), holdOrderEntity.getSymbolCnt(), holdOrderEntity.getSymbolSku(), holdOrderEntity.getOpeningType(), memberEntity); holdAmount = holdAmount.add(thisTimeHold); - holdOrderEntity.setBondAmount(subBond); - holdOrderEntity.setHoldAmount(holdAmount); - holdOrderEntity.setForceClosingPrice(newForcePrice); - holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1); - contractHoldOrderDao.updateById(holdOrderEntity); - - memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, holdOrderEntity.getMemberId()); if (ContractEntrustOrderEntity.POSITION_TYPE_ADD == holdOrderEntity.getPositionType()) { + + MemberEntity memberEntity = memberDao.selectById(holdOrderEntity.getMemberId()); + BigDecimal subBond = holdOrderEntity.getBondAmount().subtract(thisTimeHold); + BigDecimal newForcePrice = CalculateUtil.getForceSetPrice(subBond.subtract(holdOrderEntity.getOpeningFeeAmount()), holdOrderEntity.getOpeningPrice(), holdOrderEntity.getSymbolCnt(), holdOrderEntity.getSymbolSku(), holdOrderEntity.getOpeningType(), memberEntity); + holdOrderEntity.setBondAmount(subBond); + holdOrderEntity.setHoldAmount(holdAmount); + holdOrderEntity.setForceClosingPrice(newForcePrice); + holdOrderEntity.setOperateNo(holdOrderEntity.getOperateNo() + 1); + contractHoldOrderDao.updateById(holdOrderEntity); + + memberWalletContractDao.increaseWalletContractBalanceById(null, thisTimeHold.negate(), null, wallet.getId()); // 发送爆仓消息 sendOrderBombMsg(holdOrderEntity.getId(), holdOrderEntity.getOpeningType(), newForcePrice, holdOrderEntity.getSymbol(), holdOrderEntity.getOperateNo(), holdOrderEntity.getMemberId()); + } else { + holdOrderEntity.setHoldAmount(holdAmount); + contractHoldOrderDao.updateById(holdOrderEntity); + memberWalletContractDao.increaseWalletContractBalanceById(thisTimeHold.negate(), thisTimeHold.negate(), null, wallet.getId()); + ThreadPoolUtils.sendWholePrice(holdOrderEntity.getMemberId()); } } } -- Gitblit v1.9.1