From cf200a1f92c01ba22c326c49391f748ffb006910 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 05 Jul 2021 17:28:35 +0800
Subject: [PATCH] 20210617  开售开关

---
 src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java | 1449 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 1,306 insertions(+), 143 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 d57aa70..2d949d6 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
@@ -1,143 +1,1306 @@
-package com.xcong.excoin.modules.trademanage.service.impl;
-
-
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xcong.excoin.common.entity.QueryRequest;
-import com.xcong.excoin.common.utils.CoinTypeConvert;
-import com.xcong.excoin.common.utils.RedisUtils;
-import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity;
-import com.xcong.excoin.modules.member.entity.MemberEntity;
-import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper;
-import com.xcong.excoin.modules.member.mapper.MemberMapper;
-import com.xcong.excoin.modules.trademanage.entity.AgentReturnEntity;
-import com.xcong.excoin.modules.trademanage.entity.ContractHoldOrderEntity;
-import com.xcong.excoin.modules.trademanage.entity.ContractOrderEntity;
-import com.xcong.excoin.modules.trademanage.entity.MemberWalletAgentEntity;
-import com.xcong.excoin.modules.trademanage.mapper.AgentReturnMapper;
-import com.xcong.excoin.modules.trademanage.mapper.ContractHoldOrderEntityMapper;
-import com.xcong.excoin.modules.trademanage.mapper.ContractOrderMapper;
-import com.xcong.excoin.modules.trademanage.mapper.MemberWalletAgentMapper;
-import com.xcong.excoin.modules.trademanage.service.TradeManageService;
-import com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo;
-import lombok.RequiredArgsConstructor;
-
-@Service
-@RequiredArgsConstructor
-public class TradeManageServiceImpl extends ServiceImpl<ContractHoldOrderEntityMapper, ContractHoldOrderEntity> implements TradeManageService{
-
-	private final ContractHoldOrderEntityMapper contractHoldOrderEntityMapper;
-	
-	private final MemberMapper memberMapper;
-	
-	private final MemberWalletAgentMapper memberWalletAgentMapper;
-
-	private final MemberAccountMoneyChangeMapper memberAccountMoneyChangeMapper;
-	
-	private final ContractOrderMapper contractHoldOrderMapper;
-	
-	private final AgentReturnMapper agentReturnMapper;
-	
-	private final RedisUtils redisUtils;
-	
-	@Override
-	public IPage<ContractHoldOrderEntity> findContractHoldOrderListInPage(
-			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
-		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
-		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.selectContractHoldOrderListInPage(page, contractHoldOrderEntity);
-		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
-		
-		if (records != null) {
-            for (ContractHoldOrderEntity holdOrderEntity : records) {
-            	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
-                // 获取最新价
-                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));
-                    }
-                }
-
-                holdOrderEntity.setRewardRatio(rewardRatio);
-            }
-        }
-		return findMemberAccountInfoListInPage;
-	}
-
-	@Override
-	public IPage<MemberAccountInfoVo> findMemberAccountInfoListInPage(MemberEntity memberEntity, QueryRequest request) {
-		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
-		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoListInPage(page, memberEntity);
-		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
-		if(records.size() > 0) {
-			for(MemberAccountInfoVo memberAccountInfoVo : records) {
-				Long memberId = memberAccountInfoVo.getId();
-				String inviteId = memberMapper.selectAgentForAccount(memberId);
-				if("".equals(inviteId) || inviteId == null) {
-					memberAccountInfoVo.setIsSuAccount(0);
-				}else {
-					memberAccountInfoVo.setIsSuAccount(1);
-				}
-				Map<String, Object> columnMap = new HashMap<>();
-				columnMap.put("member_id", memberId);
-				List<MemberWalletAgentEntity> selectByMap = memberWalletAgentMapper.selectByMap(columnMap);
-				if(selectByMap.size() > 0) {
-					BigDecimal availableBalance = selectByMap.get(0).getAvailableBalance();
-					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
-				}
-				
-			}
-		}
-        return selectMemberListInPage;
-	}
-
-	@Override
-	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoInPage(
-			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
-		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
-		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAccountInfoListInPage(page, memberAccountMoneyChangeEntity);
-		return findMemberAccountInfoListInPage;
-	}
-
-	@Override
-	public IPage<ContractOrderEntity> findMemberHistoryOrderInfoInPage(
-			ContractOrderEntity contractOrderEntity, QueryRequest request) {
-		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
-		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoInPage(page, contractOrderEntity);
-		return findMemberAccountInfoListInPage;
-	}
-
-	@Override
-	public IPage<AgentReturnEntity> findMemberAgentReturnInfosInPage(AgentReturnEntity agentReturnEntity,
-			QueryRequest request) {
-		Page<AgentReturnEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
-		IPage<AgentReturnEntity> findMemberAccountInfoListInPage = agentReturnMapper.findMemberAgentReturnInfosInPage(page, agentReturnEntity);
-		return findMemberAccountInfoListInPage;
-	}
-
-}
+package com.xcong.excoin.modules.trademanage.service.impl;
+
+
+import java.math.BigDecimal;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xcong.excoin.common.entity.FebsResponse;
+import com.xcong.excoin.common.entity.QueryRequest;
+import com.xcong.excoin.common.utils.CoinTypeConvert;
+import com.xcong.excoin.common.utils.RedisUtils;
+import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity;
+import com.xcong.excoin.modules.documentary.mapper.FollowFollowerProfitMapper;
+import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity;
+import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
+import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper;
+import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper;
+import com.xcong.excoin.modules.member.mapper.MemberMapper;
+import com.xcong.excoin.modules.trademanage.entity.AgentReturnEntity;
+import com.xcong.excoin.modules.trademanage.entity.ContractHoldOrderEntity;
+import com.xcong.excoin.modules.trademanage.entity.ContractOrderEntity;
+import com.xcong.excoin.modules.trademanage.entity.MemberWalletAgentEntity;
+import com.xcong.excoin.modules.trademanage.mapper.AgentReturnMapper;
+import com.xcong.excoin.modules.trademanage.mapper.ContractHoldOrderEntityMapper;
+import com.xcong.excoin.modules.trademanage.mapper.ContractOrderMapper;
+import com.xcong.excoin.modules.trademanage.mapper.MemberWalletAgentMapper;
+import com.xcong.excoin.modules.trademanage.service.TradeManageService;
+import com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo;
+import com.xcong.excoin.modules.trademanage.vo.PositionSettingVo;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import lombok.RequiredArgsConstructor;
+
+@Service
+@RequiredArgsConstructor
+public class TradeManageServiceImpl extends ServiceImpl<ContractHoldOrderEntityMapper, ContractHoldOrderEntity> implements TradeManageService{
+
+	private final ContractHoldOrderEntityMapper contractHoldOrderEntityMapper;
+	
+	private final MemberMapper memberMapper;
+	
+	private final MemberWalletAgentMapper memberWalletAgentMapper;
+
+	private final MemberAccountMoneyChangeMapper memberAccountMoneyChangeMapper;
+	
+	private final ContractOrderMapper contractHoldOrderMapper;
+	
+	
+	private final AgentReturnMapper agentReturnMapper;
+	
+	private final MemberAuthenticationMapper memberAuthenticationMapper;
+	
+	private final  FollowFollowerProfitMapper followFollowerProfitMapper;
+	
+	private final RedisUtils redisUtils;
+	
+	@Override
+	public IPage<ContractHoldOrderEntity> findContractHoldOrderListInPage(
+			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.selectContractHoldOrderListInPage(page, contractHoldOrderEntity);
+		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		
+		if (records != null) {
+            for (ContractHoldOrderEntity holdOrderEntity : records) {
+            	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+            	
+            	Long memberId = holdOrderEntity.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					holdOrderEntity.setRealName(realName);
+				}
+				//如果是跟单合约,显示他的交易员的邀请码
+				int contractType = holdOrderEntity.getContractType();
+				Long holdOrderEntityMemberId = holdOrderEntity.getMemberId();
+				MemberEntity holdOrderEntityMember = memberMapper.selectById(holdOrderEntityMemberId);
+				Integer isTrader = holdOrderEntityMember.getIsTrader();
+				if(MemberEntity.ISTRADER_N == isTrader) {
+					if(ContractHoldOrderEntity.CONTRACTTYPE_FOLLOW == contractType) {
+						//获取对应的【follow_follower_profit】跟随者收益关系表
+						QueryWrapper<FollowFollowerProfitEntity> queryWrapper = new QueryWrapper<>();
+						queryWrapper.eq("member_id",holdOrderEntity.getMemberId());
+						FollowFollowerProfitEntity followFollowerProfitEntity = followFollowerProfitMapper.selectOne(queryWrapper);
+						Long tradeMemberId = followFollowerProfitEntity.getTradeMemberId();
+						MemberEntity selectByIdTrader = memberMapper.selectById(tradeMemberId);
+						String inviteId = selectByIdTrader.getInviteId();
+						holdOrderEntity.setInviteIdTrader(inviteId);
+					}
+				}
+                // 获取最新价
+                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));
+                    }
+                }
+
+                holdOrderEntity.setRewardRatio(rewardRatio);
+            }
+        }
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountInfoVo> findMemberAccountInfoListInPage(MemberEntity memberEntity, QueryRequest request) {
+		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoListInPage(page, memberEntity);
+		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+		if(CollUtil.isNotEmpty(records)) {
+			for(MemberAccountInfoVo memberAccountInfoVo : records) {
+				Long memberId = memberAccountInfoVo.getId();
+				
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(CollUtil.isNotEmpty(selectByMap)) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountInfoVo.setRealName(realName);
+				}
+				
+				//总盈亏
+				String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+		        BigDecimal bd=new BigDecimal(rewardratioByMid);
+				memberAccountInfoVo.setRewardratioByMid(bd);
+				String inviteId = memberMapper.selectAgentForAccount(memberId);
+				if("".equals(inviteId) || inviteId == null) {
+					memberAccountInfoVo.setIsSuAccount(0);
+				}else {
+					memberAccountInfoVo.setIsSuAccount(1);
+				}
+				
+				Map<String, Object> columnMaps = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMaps);
+				if(CollUtil.isNotEmpty(selectByMaps)) {
+					BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+				}
+				
+			}
+		}
+        return selectMemberListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoInPage(
+			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAccountInfoListInPage(page, memberAccountMoneyChangeEntity);
+		
+		List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(CollUtil.isNotEmpty(records)) {
+			for(MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntitys : records) {
+				Long memberId = memberAccountMoneyChangeEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(CollUtil.isNotEmpty(selectByMap)) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountMoneyChangeEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findMemberHistoryOrderInfoInPage(
+			ContractOrderEntity contractOrderEntity, QueryRequest request) {
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoInPage(page, contractOrderEntity);
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<AgentReturnEntity> findMemberAgentReturnInfosInPage(AgentReturnEntity agentReturnEntity,
+			QueryRequest request) {
+		Page<AgentReturnEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<AgentReturnEntity> findMemberAccountInfoListInPage = agentReturnMapper.findMemberAgentReturnInfosInPage(page, agentReturnEntity);
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findMemberHistoryOrderAllInfoInPage(ContractOrderEntity contractOrderEntity,
+			QueryRequest request) {
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoAllInPage(page, contractOrderEntity);
+		List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(CollUtil.isNotEmpty(records)) {
+			for(ContractOrderEntity contractOrderEntitys : records) {
+				Long memberId = contractOrderEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					contractOrderEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneInPage(
+			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneInPage(page, contractHoldOrderEntity);
+		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		
+		if (records != null) {
+            for (ContractHoldOrderEntity holdOrderEntity : records) {
+            	
+            	Long memberId = holdOrderEntity.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					holdOrderEntity.setRealName(realName);
+				}
+            	
+            	
+            	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+                // 获取最新价
+                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));
+                    }
+                }
+
+                holdOrderEntity.setRewardRatio(rewardRatio);
+            }
+        }
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findHistoryOrderInfoAloneInfoInPage(ContractOrderEntity contractOrderEntity,
+			QueryRequest request) {
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneInfoInPage(page, contractOrderEntity);
+		List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(ContractOrderEntity contractOrderEntitys : records) {
+				Long memberId = contractOrderEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					contractOrderEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneInPage(
+			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = 
+				memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneInPage(page, memberAccountMoneyChangeEntity);
+		
+		List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			String selectYJByMemberId = agentReturnMapper.selectYJByMemberId();
+			for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) {
+				Long memberId = accountMoneyChangeEntity.getMemberId();
+				String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId);
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					accountMoneyChangeEntity.setRealName(realName);
+				}
+				accountMoneyChangeEntity.setAllAmount(allAmount);
+				if(memberId == 8) {
+					accountMoneyChangeEntity.setAmount(BigDecimal.ZERO);
+					accountMoneyChangeEntity.setAllAmount(selectYJByMemberId);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountInfoVo> findmemberAccountInfoAloneListInPage(MemberEntity memberEntity,
+			QueryRequest request) {
+		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneListInPage(page, memberEntity);
+		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+		if(records.size() > 0) {
+			for(MemberAccountInfoVo memberAccountInfoVo : records) {
+				Long memberId = memberAccountInfoVo.getId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountInfoVo.setRealName(realName);
+				}
+				//总盈亏
+				String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+		        BigDecimal bd=new BigDecimal(rewardratioByMid);
+				memberAccountInfoVo.setRewardratioByMid(bd);
+				String inviteId = memberMapper.selectAgentForAccount(memberId);
+				if("".equals(inviteId) || inviteId == null) {
+					memberAccountInfoVo.setIsSuAccount(0);
+				}else {
+					memberAccountInfoVo.setIsSuAccount(1);
+				}
+				List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+				if(selectByMaps.size() > 0) {
+					BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+				}
+				
+			}
+		}
+        return selectMemberListInPage;
+	}
+
+	@Override
+	public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneTestInPage(
+			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneTestInPage(page, contractHoldOrderEntity);
+		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		
+		if (records != null) {
+            for (ContractHoldOrderEntity holdOrderEntity : records) {
+            	
+            	Long memberId = holdOrderEntity.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					holdOrderEntity.setRealName(realName);
+				}
+            	
+            	
+            	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+                // 获取最新价
+                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));
+                    }
+                }
+
+                holdOrderEntity.setRewardRatio(rewardRatio);
+            }
+        }
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findhistoryOrderInfoAloneTestInfoInPage(ContractOrderEntity contractOrderEntity,
+			QueryRequest request) {
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findhistoryOrderInfoAloneTestInfoInPage(page, contractOrderEntity);
+		List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(ContractOrderEntity contractOrderEntitys : records) {
+				Long memberId = contractOrderEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					contractOrderEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneTestInPage(
+			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = 
+				memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneTestInPage(page, memberAccountMoneyChangeEntity);
+		
+		List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			String selectYJByMemberId = agentReturnMapper.selectYJTestByMemberId();
+			for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) {
+				Long memberId = accountMoneyChangeEntity.getMemberId();
+				String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId);
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					accountMoneyChangeEntity.setRealName(realName);
+				}
+				accountMoneyChangeEntity.setAllAmount(allAmount);
+				if(memberId == 8) {
+					accountMoneyChangeEntity.setAmount(BigDecimal.ZERO);
+					accountMoneyChangeEntity.setAllAmount(selectYJByMemberId);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountInfoVo> findmemberAccountInfoAloneTestListInPage(MemberEntity memberEntity,
+			QueryRequest request) {
+		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findmemberAccountInfoAloneTestListInPage(page, memberEntity);
+		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+		if(records.size() > 0) {
+			for(MemberAccountInfoVo memberAccountInfoVo : records) {
+				Long memberId = memberAccountInfoVo.getId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountInfoVo.setRealName(realName);
+				}
+				//总盈亏
+				String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+		        BigDecimal bd=new BigDecimal(rewardratioByMid);
+				memberAccountInfoVo.setRewardratioByMid(bd);
+				String inviteId = memberMapper.selectAgentForAccount(memberId);
+				if("".equals(inviteId) || inviteId == null) {
+					memberAccountInfoVo.setIsSuAccount(0);
+				}else {
+					memberAccountInfoVo.setIsSuAccount(1);
+				}
+				List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+				if(selectByMaps.size() > 0) {
+					BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+				}
+				
+			}
+		}
+        return selectMemberListInPage;
+	}
+
+	@Override
+	public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneOneInPage(
+			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+		
+		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneOneInPage(page, contractHoldOrderEntity);
+		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		
+		if (records != null) {
+	        for (ContractHoldOrderEntity holdOrderEntity : records) {
+	        	
+	        	Long memberId = holdOrderEntity.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					holdOrderEntity.setRealName(realName);
+				}
+	        	
+	        	
+	        	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+	            // 获取最新价
+	            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));
+	                }
+	            }
+	
+	            holdOrderEntity.setRewardRatio(rewardRatio);
+	        }
+	    }
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneTwoInPage(
+			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+		
+		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneTwoInPage(page, contractHoldOrderEntity);
+		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		
+		if (records != null) {
+	        for (ContractHoldOrderEntity holdOrderEntity : records) {
+	        	
+	        	Long memberId = holdOrderEntity.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					holdOrderEntity.setRealName(realName);
+				}
+	        	
+	        	
+	        	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+	            // 获取最新价
+	            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));
+	                }
+	            }
+	
+	            holdOrderEntity.setRewardRatio(rewardRatio);
+	        }
+	    }
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneThreeInPage(
+			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+		
+		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneThreeInPage(page, contractHoldOrderEntity);
+		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		
+		if (records != null) {
+	        for (ContractHoldOrderEntity holdOrderEntity : records) {
+	        	
+	        	Long memberId = holdOrderEntity.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					holdOrderEntity.setRealName(realName);
+				}
+	        	
+	        	
+	        	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+	            // 获取最新价
+	            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));
+	                }
+	            }
+	
+	            holdOrderEntity.setRewardRatio(rewardRatio);
+	        }
+	    }
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneOneAllInPage(
+			ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+		
+		Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneOneAllInPage(page, contractHoldOrderEntity);
+		List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		
+		if (records != null) {
+	        for (ContractHoldOrderEntity holdOrderEntity : records) {
+	        	
+	        	Long memberId = holdOrderEntity.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					holdOrderEntity.setRealName(realName);
+				}
+	        	
+	        	
+	        	MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+	            // 获取最新价
+	            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));
+	                }
+	            }
+	
+	            holdOrderEntity.setRewardRatio(rewardRatio);
+	        }
+	    }
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneOneInPage(
+			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+		
+		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = 
+				memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneOneInPage(page, memberAccountMoneyChangeEntity);
+		
+		List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) {
+				Long memberId = accountMoneyChangeEntity.getMemberId();
+				String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId);
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					accountMoneyChangeEntity.setRealName(realName);
+				}
+				accountMoneyChangeEntity.setAllAmount(allAmount);
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneTwoInPage(
+			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+		
+		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = 
+				memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneTwoInPage(page, memberAccountMoneyChangeEntity);
+		
+		List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) {
+				Long memberId = accountMoneyChangeEntity.getMemberId();
+				String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId);
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					accountMoneyChangeEntity.setRealName(realName);
+				}
+				accountMoneyChangeEntity.setAllAmount(allAmount);
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneThreeInPage(
+			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+		
+		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = 
+				memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneThreeInPage(page, memberAccountMoneyChangeEntity);
+		
+		List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) {
+				Long memberId = accountMoneyChangeEntity.getMemberId();
+				String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId);
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					accountMoneyChangeEntity.setRealName(realName);
+				}
+				accountMoneyChangeEntity.setAllAmount(allAmount);
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneOneAllInPage(
+			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+		
+		Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = 
+				memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneOneAllInPage(page, memberAccountMoneyChangeEntity);
+		
+		List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) {
+				Long memberId = accountMoneyChangeEntity.getMemberId();
+				String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId);
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					accountMoneyChangeEntity.setRealName(realName);
+				}
+				accountMoneyChangeEntity.setAllAmount(allAmount);
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneOneInPage(MemberEntity memberEntity,
+			QueryRequest request) {
+		
+		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneOneInPage(page, memberEntity);
+		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+		if(records.size() > 0) {
+			for(MemberAccountInfoVo memberAccountInfoVo : records) {
+				
+				Long memberId = memberAccountInfoVo.getId();
+				String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+				String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+				String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+					
+				memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+				memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+				memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+				
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountInfoVo.setRealName(realName);
+				}
+				//总盈亏
+				String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+		        BigDecimal bd=new BigDecimal(rewardratioByMid);
+				memberAccountInfoVo.setRewardratioByMid(bd);
+				String inviteId = memberMapper.selectAgentForAccount(memberId);
+				if("".equals(inviteId) || inviteId == null) {
+					memberAccountInfoVo.setIsSuAccount(0);
+				}else {
+					memberAccountInfoVo.setIsSuAccount(1);
+				}
+				List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+				if(selectByMaps.size() > 0) {
+					BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+				}
+				
+			}
+		}
+        return selectMemberListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneTwoInPage(MemberEntity memberEntity,
+			QueryRequest request) {
+		
+		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneTwoInPage(page, memberEntity);
+		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+		if(records.size() > 0) {
+			for(MemberAccountInfoVo memberAccountInfoVo : records) {
+				
+				Long memberId = memberAccountInfoVo.getId();
+				String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+				String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+				String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+					
+				memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+				memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+				memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+				
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountInfoVo.setRealName(realName);
+				}
+				//总盈亏
+				String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+		        BigDecimal bd=new BigDecimal(rewardratioByMid);
+				memberAccountInfoVo.setRewardratioByMid(bd);
+				String inviteId = memberMapper.selectAgentForAccount(memberId);
+				if("".equals(inviteId) || inviteId == null) {
+					memberAccountInfoVo.setIsSuAccount(0);
+				}else {
+					memberAccountInfoVo.setIsSuAccount(1);
+				}
+				List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+				if(selectByMaps.size() > 0) {
+					BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+				}
+				
+			}
+		}
+        return selectMemberListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneTeeInPage(MemberEntity memberEntity,
+			QueryRequest request) {
+		
+		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneTeeInPage(page, memberEntity);
+		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+		if(records.size() > 0) {
+			for(MemberAccountInfoVo memberAccountInfoVo : records) {
+				Long memberId = memberAccountInfoVo.getId();
+
+				String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+				String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+				String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+					
+				memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+				memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+				memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+				
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountInfoVo.setRealName(realName);
+				}
+				//总盈亏
+				String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+		        BigDecimal bd=new BigDecimal(rewardratioByMid);
+				memberAccountInfoVo.setRewardratioByMid(bd);
+				String inviteId = memberMapper.selectAgentForAccount(memberId);
+				if("".equals(inviteId) || inviteId == null) {
+					memberAccountInfoVo.setIsSuAccount(0);
+				}else {
+					memberAccountInfoVo.setIsSuAccount(1);
+				}
+				List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+				if(selectByMaps.size() > 0) {
+					BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+				}
+				
+			}
+		}
+        return selectMemberListInPage;
+	}
+
+	@Override
+	public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneAllInPage(MemberEntity memberEntity,
+			QueryRequest request) {
+		
+		Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneAllInPage(page, memberEntity);
+		List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+		if(records.size() > 0) {
+			for(MemberAccountInfoVo memberAccountInfoVo : records) {
+				Long memberId = memberAccountInfoVo.getId();
+				
+				String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+				String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+				String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+					
+				memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+				memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+				memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+				
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					memberAccountInfoVo.setRealName(realName);
+				}
+				//总盈亏
+				String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+		        BigDecimal bd=new BigDecimal(rewardratioByMid);
+				memberAccountInfoVo.setRewardratioByMid(bd);
+				String inviteId = memberMapper.selectAgentForAccount(memberId);
+				if("".equals(inviteId) || inviteId == null) {
+					memberAccountInfoVo.setIsSuAccount(0);
+				}else {
+					memberAccountInfoVo.setIsSuAccount(1);
+				}
+				List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+				if(selectByMaps.size() > 0) {
+					BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+					memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+				}
+				
+			}
+		}
+        return selectMemberListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findHistoryOrderInfoAloneOneInPage(ContractOrderEntity contractOrderEntity,
+			QueryRequest request) {
+		
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneOneInPage(page, contractOrderEntity);
+		List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(ContractOrderEntity contractOrderEntitys : records) {
+				Long memberId = contractOrderEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					contractOrderEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findHistoryOrderInfoAloneTwoInPage(ContractOrderEntity contractOrderEntity,
+			QueryRequest request) {
+		
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneTwoInPage(page, contractOrderEntity);
+		List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(ContractOrderEntity contractOrderEntitys : records) {
+				Long memberId = contractOrderEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					contractOrderEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findHistoryOrderInfoAloneTeeInPage(ContractOrderEntity contractOrderEntity,
+			QueryRequest request) {
+		
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneTeeInPage(page, contractOrderEntity);
+		List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(ContractOrderEntity contractOrderEntitys : records) {
+				Long memberId = contractOrderEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					contractOrderEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<ContractOrderEntity> findHistoryOrderInfoAloneAllInPage(ContractOrderEntity contractOrderEntity,
+			QueryRequest request) {
+		
+		Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneAllInPage(page, contractOrderEntity);
+		List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(ContractOrderEntity contractOrderEntitys : records) {
+				Long memberId = contractOrderEntitys.getMemberId();
+				Map<String, Object> columnMap = new HashMap<>();
+				columnMap.put("member_id", memberId);
+				List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+				if(selectByMap != null && selectByMap.size() > 0) {
+					MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+					String firstName = memberAuthenticationEntity.getFirstName();
+					String secondName = memberAuthenticationEntity.getSecondName();
+					String realName = firstName + secondName;
+					contractOrderEntitys.setRealName(realName);
+				}
+			}
+		}
+		return findMemberAccountInfoListInPage;
+	}
+
+	@Override
+	public IPage<PositionSettingVo> getPositionSettingList(MemberEntity memberEntity, QueryRequest request) {
+		
+		Page<PositionSettingVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+		IPage<PositionSettingVo> positionSettingVoIPage = contractHoldOrderMapper.getPositionSettingList(page, memberEntity);
+		if(StrUtil.isNotEmpty(memberEntity.getAccounts())) {
+			positionSettingVoIPage = contractHoldOrderMapper.getPositionSettingsList(page, memberEntity);
+		}
+		List<PositionSettingVo> records = positionSettingVoIPage.getRecords();
+		if(records != null && records.size() > 0) {
+			for(PositionSettingVo positionSettingVo : records) {
+				Long memberId = positionSettingVo.getId();
+				MemberEntity selectById = memberMapper.selectById(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);
+			}
+			//降序
+//			Collections.sort(records, new Comparator<PositionSettingVo>() {//调用sort()方法,并实现Comparator接口中的compare()方法
+//				@Override
+//				public int compare(PositionSettingVo lhs, PositionSettingVo rhs) {
+//					int value = Integer.valueOf(rhs.getSumRewardAmount().intValue())
+//	                        - Integer.valueOf(lhs.getSumRewardAmount().intValue());
+//					return value;
+//				}
+//			});
+			//升序
+			CollUtil.sortByProperty(records, "sumRewardAmount");
+			//CollUtil.sortByProperty(records, "accountType");
+		}
+//		positionSettingVoIPage.setRecords(records);
+		return positionSettingVoIPage;
+	}
+
+	@Override
+	@Transactional
+	public FebsResponse disagreePositionSetting(@NotNull(message = "{required}") Long id) {
+		MemberEntity memberEntity = memberMapper.selectById(id);
+		if(ObjectUtil.isEmpty(memberEntity)) {
+			return new FebsResponse().fail().message("会员信息不存在");
+		}
+		memberEntity.setPcState(MemberEntity.PCSTATE_N);
+		memberMapper.updateById(memberEntity);
+		return new FebsResponse().success();
+	}
+
+	@Override
+	public FebsResponse agreePositionSetting(@NotNull(message = "{required}") Long id) {
+		MemberEntity memberEntity = memberMapper.selectById(id);
+		if(ObjectUtil.isEmpty(memberEntity)) {
+			return new FebsResponse().fail().message("会员信息不存在");
+		}
+		memberEntity.setPcState(MemberEntity.PCSTATE_Y);
+		memberMapper.updateById(memberEntity);
+		return new FebsResponse().success();
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+}

--
Gitblit v1.9.1