From b7ba5220be54c7ccef86632f165c079f7a5f0d78 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 01 Feb 2021 11:16:34 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java b/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
index 1df8876..1f4adb0 100644
--- a/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
+++ b/src/main/java/com/xcong/excoin/rabbit/pricequeue/WebsocketPriceService.java
@@ -12,6 +12,7 @@
 import com.xcong.excoin.modules.member.dao.MemberWalletContractDao;
 import com.xcong.excoin.modules.member.entity.MemberEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
+import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity;
 import com.xcong.excoin.rabbit.pricequeue.whole.HoldOrderDataModel;
 import com.xcong.excoin.rabbit.pricequeue.whole.WholeDataQueue;
 import com.xcong.excoin.rabbit.pricequeue.whole.WholePriceDataModel;
@@ -42,6 +43,9 @@
     private MemberDao memberDao;
     @Resource
     private MemberWalletContractDao memberWalletContractDao;
+
+    @Resource
+    private CacheSettingUtils cacheSettingUtils;
     /**
      * @param symbol
      * @param price
@@ -296,6 +300,8 @@
 
             if (CollUtil.isNotEmpty(list)) {
                 BigDecimal totalProfitOrLoss = BigDecimal.ZERO;
+
+                MemberEntity memberEntity = memberDao.selectById(Long.parseLong(entry.getKey()));
                 Map<String, BigDecimal> prices = new HashMap<>();
                 for (HoldOrderDataModel holdOrderData : list) {
                     String price = redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderData.getSymbol()));
@@ -311,6 +317,16 @@
                         // (开仓价-最新价)*规格*张数
                         rewardRatio = holdOrderData.getOpeningPrice().subtract(newPrice).multiply(holdOrderData.getSymbolSku()).multiply(new BigDecimal(holdOrderData.getSymbolCntSale()));
                     }
+
+                    if (memberEntity.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
+                        PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting();
+                        if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) {
+                            rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam()));
+                        } else {
+//                        rewardRatio = rewardRatio.multiply(BigDecimal.ONE.add(tradeSettingEntity.getProfitParam()));
+                        }
+                    }
+
                     holdOrderData.setRewardAmount(rewardRatio);
                     holdOrderData.setClosingPrice(newPrice);
                     totalProfitOrLoss = totalProfitOrLoss.add(rewardRatio).setScale(8, BigDecimal.ROUND_DOWN);

--
Gitblit v1.9.1