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.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 cn.hutool.core.collection.CollUtil;  
 | 
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 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);  
 | 
                }  
 | 
                  
 | 
                  
 | 
                // 获取最新价  
 | 
                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;  
 | 
    }  
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
      
 | 
  
 | 
}  
 |