From afc924b0d88ef320ad09060ae49804556efd8eb6 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 11 Sep 2020 10:08:25 +0800 Subject: [PATCH] Merge branch 'master' into whole_new --- src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java | 25 ++++++------------------- 1 files changed, 6 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 7a27dc0..898d1cc 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 @@ -483,7 +483,9 @@ Map<Object, Object> value = redisUtils.hmget(AppContants.WHOLE_BOMB_PREFIX + memberId); if (CollUtil.isNotEmpty(holdOrderEntities)) { - PlatformTradeSettingEntity tradeSetting = cacheSettingUtils.getTradeSetting(); + BigDecimal maxLess = BigDecimal.ZERO; + ContractOrderEntity maxLessEntity = null; + BigDecimal totalProfitOrLess = BigDecimal.ZERO; for (ContractHoldOrderEntity holdOrderEntity : holdOrderEntities) { // 删除次仓订单 contractHoldOrderDao.deleteById(holdOrderEntity.getId()); @@ -491,23 +493,7 @@ String symbolPrice = (String) value.get(holdOrderEntity.getSymbol()); log.info("symbolPrice : {}, symbol : {}", symbolPrice, holdOrderEntity.getSymbol()); BigDecimal currentPrice = new BigDecimal(symbolPrice); - // 单个订单盈利 -// 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); @@ -525,6 +511,7 @@ contractOrderEntity.setRewardRatio(rewardRatio); contractOrderEntity.setRewardAmount(profitOrLess); contractOrderEntity.setClosingPrice(currentPrice); + contractOrderEntity.setForceClosingPrice(currentPrice); // 订单状态转换 if (ContractOrderEntity.ORDER_TYPE_OPEN_MORE == contractOrderEntity.getOrderType()) { @@ -546,7 +533,7 @@ } } - memberWalletContractDao.increaseWalletContractBalanceById(BigDecimal.ZERO, wallet.getTotalBalance().subtract(totalAmount).negate(), null, wallet.getId()); + memberWalletContractDao.increaseWalletContractBalanceById(wallet.getAvailableBalance().negate(), wallet.getTotalBalance().subtract(totalAmount).negate(), null, wallet.getId()); redisUtils.del(AppContants.WHOLE_BOMB_PREFIX + memberId); } else { -- Gitblit v1.9.1