From 31796f3854bb0f89793d5122a2e1ab231aa44331 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 22 Mar 2021 14:53:07 +0800
Subject: [PATCH] 20210319  平仓加载中

---
 src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java b/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
index 0d25b6e..ae89ee6 100644
--- a/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
@@ -57,6 +57,7 @@
 	
 	private final ContractOrderMapper contractHoldOrderMapper;
 	
+	
 	private final AgentReturnMapper agentReturnMapper;
 	
 	private final MemberAuthenticationMapper memberAuthenticationMapper;
@@ -1183,8 +1184,39 @@
 		if(records != null && records.size() > 0) {
 			for(PositionSettingVo positionSettingVo : records) {
 				Long memberId = positionSettingVo.getId();
+				MemberEntity selectById = memberMapper.selectById(memberId);
 				//当前持仓总盈亏
-				BigDecimal sumRewardAmount = contractHoldOrderMapper.selectRewardAmountBymemberId(memberId);
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				BigDecimal sumRewardAmount = BigDecimal.ZERO;
+				List<ContractHoldOrderEntity> contractHoldOrderEntitys = contractHoldOrderEntityMapper.selectByMap(columnMap );
+				for(ContractHoldOrderEntity holdOrderEntity : contractHoldOrderEntitys) {
+					// 获取最新价
+	                BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
+	                BigDecimal lotNumber = holdOrderEntity.getSymbolSku();
+	                // 盈亏
+	                BigDecimal rewardRatio = BigDecimal.ZERO;
+	                // 开多
+	                if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
+	                    // (最新价-开仓价)*规格*张数
+	                    rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
+	                    // 开空
+	                } else {
+	                    // (开仓价-最新价)*规格*张数
+	                    rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
+	                }
+
+	                if (selectById.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
+	                   String selectTradeSetting = memberMapper.selectTradeSetting();
+	                    BigDecimal profitParam=new BigDecimal(selectTradeSetting);  
+	                    if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) {
+	                        rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(profitParam));
+	                    } else {
+	                        rewardRatio = rewardRatio.multiply(BigDecimal.ONE.add(profitParam));
+	                    }
+	                }
+	                sumRewardAmount = sumRewardAmount.add(rewardRatio);
+				}
 				positionSettingVo.setSumRewardAmount(sumRewardAmount);
 			}
 		}

--
Gitblit v1.9.1