From 9c4f4c2e26931ca84895e2c4cf62d1b80ba299cb Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 08 Sep 2020 11:18:32 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 39 ++++++++++++++++++++------------------- 1 files changed, 20 insertions(+), 19 deletions(-) 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 e8b7f97..97e866e 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 @@ -479,32 +479,33 @@ Long memberId = memberEntity.getId(); List<ContractHoldOrderEntity> holdOrderEntities = contractHoldOrderDao.selectHoldOrderListForWholeByMemberIdAndSymbol(memberId, null); MemberWalletContractEntity wallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name()); - BigDecimal currentPrice = new BigDecimal(orderModel.getPrice()); if (CollUtil.isNotEmpty(holdOrderEntities)) { PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting(); for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) { // 删除次仓订单 contractHoldOrderDao.deleteById(holdOrderEntity.getId()); BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(holdOrderEntity.getSymbol()); + BigDecimal currentPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()))); // 单个订单盈利 - BigDecimal profitOrLess = BigDecimal.ZERO; - // 开多 - if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) { - profitOrLess = currentPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())).multiply(lotNumber); - // 开空 - } else { - profitOrLess = holdOrderEntity.getOpeningPrice().subtract(currentPrice).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())).multiply(lotNumber); - } - - if (MemberEntity.IS_PROFIT_Y == memberEntity.getIsProfit()) { - if (profitOrLess.compareTo(BigDecimal.ZERO) > 0) { - profitOrLess = profitOrLess.multiply(BigDecimal.ONE.subtract(tradeSetting.getForceParam())); - } else { - profitOrLess = profitOrLess.multiply(BigDecimal.ONE.add(tradeSetting.getForceParam())); - } - } - +// BigDecimal profitOrLess = BigDecimal.ZERO; +// // 开多 +// if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) { +// profitOrLess = currentPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber); +// // 开空 +// } else { +// profitOrLess = holdOrderEntity.getOpeningPrice().subtract(currentPrice).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())).multiply(lotNumber); +// } +// +// if (MemberEntity.IS_PROFIT_Y == memberEntity.getIsProfit()) { +// if (profitOrLess.compareTo(BigDecimal.ZERO) > 0) { +// profitOrLess = profitOrLess.multiply(BigDecimal.ONE.subtract(tradeSetting.getForceParam())); +// } else { +// profitOrLess = profitOrLess.multiply(BigDecimal.ONE.add(tradeSetting.getForceParam())); +// } +// } + BigDecimal profitOrLess = CalculateUtil.calOrderProfitOrLess(holdOrderEntity.getOpeningType(), currentPrice, holdOrderEntity.getOpeningPrice(), lotNumber, holdOrderEntity.getSymbolCntSale(), memberEntity.getIsProfit()); + log.info("profitOrLess ---> {}", profitOrLess); ContractOrderEntity contractOrderEntity = ContractHoldOrderEntityMapper.INSTANCE.holdOrderToOrder(holdOrderEntity); // 查询是否满足爆仓条件 @@ -541,7 +542,7 @@ } } - memberWalletContractDao.increaseWalletContractBalanceById(BigDecimal.ZERO, wallet.getTotalBalance().subtract(totalAmount), null, wallet.getId()); + memberWalletContractDao.increaseWalletContractBalanceById(BigDecimal.ZERO, wallet.getTotalBalance().subtract(totalAmount).negate(), null, wallet.getId()); redisUtils.del(AppContants.WHOLE_BOMB_PREFIX + memberId); } else { -- Gitblit v1.9.1