From a9b1cf2af50878d2d97fcb5a98bdce17765d9e67 Mon Sep 17 00:00:00 2001 From: wzy <wzy19931122ai@163.com> Date: Sat, 06 Jun 2020 13:29:35 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java | 36 ++++++++++++++++++++++-------------- 1 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java index f6ca013..f63eb5a 100644 --- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java @@ -182,7 +182,7 @@ } } //回报率 - BigDecimal returnRate = profitLossPrice.divide((order.getPrePaymentAmount().subtract(contractOrderEntity.getOpeningFeeAmount())), 8, BigDecimal.ROUND_DOWN); + BigDecimal returnRate = profitLossPrice.divide((order.getBondAmount().subtract(contractOrderEntity.getOpeningFeeAmount())), 8, BigDecimal.ROUND_DOWN); contractOrderEntity.setRewardAmount(profitLossPrice); contractOrderEntity.setRewardRatio(returnRate); contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); @@ -191,14 +191,15 @@ BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); - contractEntrustOrderService.removeById(order.getId()); + contractHoldOrderService.removeById(order.getId()); // 将需要退回的减去手续费 BigDecimal needReturn = prePrice.add(profitLossPrice); //总退回金额=保证金+收益-手续费 totalReturn = needReturn.subtract(contractOrderEntity.getClosingFeeAmount()); // 总的是收益-平仓手续费 BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount()); - memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId()); + + memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); // 流水记录 TODO 531e insertAccountFlow(order, wallet, profitLossPrice, "止盈平仓"); @@ -270,7 +271,7 @@ } } //回报率 - BigDecimal returnRate = profitLossPrice.divide((order.getPrePaymentAmount().subtract(contractOrderEntity.getOpeningFeeAmount())), 8, BigDecimal.ROUND_DOWN); + BigDecimal returnRate = profitLossPrice.divide((order.getBondAmount().subtract(contractOrderEntity.getOpeningFeeAmount())), 8, BigDecimal.ROUND_DOWN); contractOrderEntity.setRewardAmount(profitLossPrice); contractOrderEntity.setRewardRatio(returnRate); contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); @@ -287,8 +288,8 @@ // 更新钱包 // 总的是收益-平仓手续费 BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount()); - memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId()); + memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); insertAccountFlow(order, wallet, profitLossPrice, "止盈平仓"); @@ -361,7 +362,7 @@ } } //回报率 - BigDecimal returnRate = profitLossPrice.divide((order.getPrePaymentAmount().subtract(contractOrderEntity.getOpeningFeeAmount())), 8, BigDecimal.ROUND_DOWN); + BigDecimal returnRate = profitLossPrice.divide((order.getBondAmount().subtract(contractOrderEntity.getOpeningFeeAmount())), 8, BigDecimal.ROUND_DOWN); contractOrderEntity.setRewardAmount(profitLossPrice); contractOrderEntity.setRewardRatio(returnRate); contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); @@ -369,6 +370,8 @@ contractOrderEntity.setClosingType(8); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); + + contractHoldOrderService.removeById(order.getId()); // 将需要退回的减去手续费 BigDecimal needReturn = prePrice.add(profitLossPrice); //总退回金额=保证金+收益-手续费 @@ -376,7 +379,8 @@ // 更新钱包 // 总的是收益-平仓手续费 BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount()); - memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId()); + + memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); insertAccountFlow(order, wallet, profitLossPrice, "开多止损平仓"); @@ -420,7 +424,7 @@ String symbol = order.getSymbol(); Long memberId = order.getMemberId(); // 本次需要退回的预付款 - BigDecimal prePrice = order.getPrePaymentAmount(); + BigDecimal prePrice = order.getBondAmount(); MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT"); if (wallet != null) { @@ -448,7 +452,7 @@ } } //回报率 - BigDecimal returnRate = profitLossPrice.divide((order.getPrePaymentAmount().subtract(contractOrderEntity.getClosingFeeAmount())), 8, BigDecimal.ROUND_DOWN); + BigDecimal returnRate = profitLossPrice.divide((order.getBondAmount().subtract(contractOrderEntity.getOpeningFeeAmount())), 8, BigDecimal.ROUND_DOWN); contractOrderEntity.setRewardAmount(profitLossPrice); contractOrderEntity.setRewardRatio(returnRate); contractOrderEntity.setClosingFeeAmount(order.getOpeningFeeAmount()); @@ -456,6 +460,9 @@ contractOrderEntity.setClosingType(9); BigDecimal totalReturn = BigDecimal.ZERO; contractOrderService.save(contractOrderEntity); + + contractHoldOrderService.removeById(order.getId()); + // 将需要退回的减去手续费 BigDecimal needReturn = prePrice.add(profitLossPrice); //总退回金额=保证金+收益-手续费 @@ -463,7 +470,7 @@ // 更新钱包 // 总的是收益-平仓手续费 BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount()); - memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId()); + memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId()); insertAccountFlow(order, wallet, profitLossPrice, "开空止损平仓"); @@ -547,6 +554,7 @@ contractOrderEntity.setEntrustOpeningPrice(coinsCoinsOrder.getEntrustPrice()); contractOrderEntity.setEntrustTime(coinsCoinsOrder.getCreateTime()); contractOrderEntity.setOpeningTime(new Date()); + contractOrderEntity.setId(null); contractOrderService.save(contractOrderEntity); // 发送爆仓的队列 @@ -563,7 +571,7 @@ // 扣除手续费 BigDecimal totalBalance = openFeePrice.negate(); contractEntrustOrderService.removeById(coinsCoinsOrder.getId()); - memberWalletContractService.increaseWalletContractBalanceById(null, totalBalance, null, wallet.getId()); + memberWalletContractService.increaseWalletContractBalanceById(null, totalBalance, coinsCoinsOrder.getBondAmount().negate(), wallet.getId()); //返佣 ThreadPoolUtils.calReturnMoney(memberEntity.getId(), openFeePrice, contractOrderEntity, AgentReturnEntity.ORDER_TYPE_OPEN); @@ -617,10 +625,10 @@ //更新主表订单状态位为“已平仓” contractOrderEntity.setId(null); - contractOrderEntity.setClosingPrice(BigDecimal.ZERO); contractOrderEntity.setClosingPrice(nowPrice); contractOrderEntity.setClosingTime(new Date()); - contractOrderEntity.setRewardAmount(coinsOrder.getPrePaymentAmount().negate()); + contractOrderEntity.setClosingFeeAmount(coinsOrder.getOpeningFeeAmount()); + contractOrderEntity.setRewardAmount(coinsOrder.getBondAmount().subtract(contractOrderEntity.getOpeningFeeAmount()).negate()); contractOrderService.save(contractOrderEntity); //更新用户钱包数据 @@ -628,7 +636,7 @@ // 减去的时候用负数 BigDecimal totalPrice = coinsOrder.getBondAmount().negate(); - memberWalletContractService.increaseWalletContractBalanceById(null, totalPrice, totalPrice, usdt.getId()); + memberWalletContractService.increaseWalletContractBalanceById(null, totalPrice, null, usdt.getId()); // 流水记录 TODO MemberAccountFlowEntity record = new MemberAccountFlowEntity(); record.setCreateTime(new Date()); -- Gitblit v1.9.1