xiaoyong931011
2021-07-05 cf200a1f92c01ba22c326c49391f748ffb006910
src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
@@ -2,18 +2,27 @@
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 org.springframework.stereotype.Service;
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;
@@ -30,6 +39,11 @@
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
@@ -46,9 +60,12 @@
   
   private final ContractOrderMapper contractHoldOrderMapper;
   
   private final AgentReturnMapper agentReturnMapper;
   
   private final MemberAuthenticationMapper memberAuthenticationMapper;
   private final  FollowFollowerProfitMapper followFollowerProfitMapper;
   
   private final RedisUtils redisUtils;
   
@@ -62,6 +79,35 @@
      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();
@@ -98,9 +144,21 @@
      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) {
      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);
@@ -111,11 +169,12 @@
            }else {
               memberAccountInfoVo.setIsSuAccount(1);
            }
            Map<String, Object> columnMap = new HashMap<>();
            Map<String, Object> columnMaps = new HashMap<>();
            columnMap.put("member_id", memberId);
            List<MemberWalletAgentEntity> selectByMap = memberWalletAgentMapper.selectByMap(columnMap);
            if(selectByMap.size() > 0) {
               BigDecimal availableBalance = selectByMap.get(0).getAvailableBalance();
            List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMaps);
            if(CollUtil.isNotEmpty(selectByMaps)) {
               BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
               memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
            }
            
@@ -129,6 +188,23 @@
         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;
   }
@@ -153,6 +229,22 @@
         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;
   }
@@ -386,6 +478,806 @@
      }
      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();
   }