xiaoyong931011
2021-06-17 4c902d9c20dd965d1ec832760809c622d1df9aac
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -1,5 +1,7 @@
package com.xcong.excoin.modules.member.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -7,10 +9,13 @@
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.RedisUtils;
import com.xcong.excoin.modules.Sms106Send;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
import com.xcong.excoin.modules.member.dto.MemberLimitDto;
import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity;
import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity;
import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity;
@@ -27,10 +32,12 @@
import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper;
import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper;
import com.xcong.excoin.modules.member.service.IMemberService;
import com.xcong.excoin.modules.member.service.RocService;
import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo;
import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo;
import com.xcong.excoin.modules.member.vo.MemberDataInfoVo;
import com.xcong.excoin.modules.member.vo.MemberInfoDetailVo;
import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo;
import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo;
@@ -44,6 +51,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@@ -78,7 +86,9 @@
   private final MemberAuthenticationMapper memberAuthenticationMapper;
   
   private final AgentFriendRelationMapper agentFriendRelationMapper;
   private final RedisUtils redisUtils;
   @Override
   public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity,
         QueryRequest request) {
@@ -406,10 +416,16 @@
      List<MemberCoinWithdrawVo> records = findmemberQuickBuySaleListInPage.getRecords();
      if(records != null && records.size() > 0) {
         for(MemberCoinWithdrawVo memberCoinWithdrawVo : records) {
            Long memberId = memberCoinWithdrawVo.getMemberId();
            BigDecimal amount = memberCoinWithdrawVo.getAmount();
            BigDecimal feeAmount = memberCoinWithdrawVo.getFeeAmount();
            BigDecimal subtract = amount.subtract(feeAmount);
            memberCoinWithdrawVo.setRealAmount(subtract);
            if("Y".equals(memberCoinWithdrawVo.getIsInside())){
               // 是内部转账 查询对应的地址
            }
         }
      }
        return findmemberQuickBuySaleListInPage;
@@ -417,17 +433,27 @@
   @Override
   @Transactional(rollbackFor = Exception.class)
   public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) {
   public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) throws ExecutionException, InterruptedException {
      
      MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id);
      Long memberId = selectById.getMemberId();
      String symbol = selectById.getSymbol();
      String address = selectById.getAddress();
      int status = selectById.getStatus();
      BigDecimal amount = selectById.getAmount();
      if(status != 1) {
         return new FebsResponse().fail().message("只有等待审核的状态才能确认!");
      }
      // 转币 需要扣除手续费
      amount = amount.subtract(selectById.getFeeAmount());
      if("ROC".equals(symbol) && !"Y".equals(selectById.getIsInside())){
         // 如果是ROC  则自动转
         String transfer = RocService.transfer(amount, address, "ROC");
         if(!"success".equals(transfer)){
            FebsResponse febsResponse = new FebsResponse();
            return  febsResponse.fail().message(transfer);
         }
      }
      // 查询币币钱包
      MemberWalletCoinEntity walletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId, symbol);
      
@@ -450,8 +476,8 @@
         Long aimMemberId = selectByMap.get(0).getMemberId();
         MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol);
         
         BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(selectById.getAmount());
         BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(selectById.getAmount());
         BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(amount);
         BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(amount);
         aimWalletCoin.setTotalBalance(addTotal);
         aimWalletCoin.setAvailableBalance(addAvailable);
         
@@ -460,7 +486,7 @@
         MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
         memberAccountMoneyChangeEntity.setContent("收款");
         memberAccountMoneyChangeEntity.setMemberId(aimMemberId);
         memberAccountMoneyChangeEntity.setAmount(selectById.getAmount());
         memberAccountMoneyChangeEntity.setAmount(amount);
         memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
         memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol());
         memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
@@ -492,6 +518,23 @@
      if(StrUtil.isNotBlank(phone)) {
         Sms106Send.sendWithdrawalCoinMsg(phone, time);
      }
       if("USDT".equals(symbol) && !"Y".equals(selectById.getIsInside())){
//         EthService ethService = new EthService();
//         // 查询余额是否足够
//         BigDecimal bigDecimal = ethService.tokenGetBalance(EthService.TOTAL_ADDRESS);
//         if(bigDecimal==null ||bigDecimal.compareTo(amount)<0 ){
//            FebsResponse fail = new FebsResponse().fail();
//            fail.message("总钱包余额不足");
//            return fail;
//         }
//         amount = amount.multiply(new BigDecimal("1000000"));
//         String usdtStr = amount.toPlainString();
//         if (usdtStr.contains(".")) {
//            usdtStr = usdtStr.substring(0, usdtStr.lastIndexOf("."));
//         }
//         String s = ethService.tokenSend(address, usdtStr, null);
      }
      /**
      //短信提醒
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@@ -565,7 +608,7 @@
      }else {
         selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_N);
         Map<String, Object> columnMap = new HashMap<>();
         columnMap.put("member_id", selectById);
         columnMap.put("member_id", selectById.getId());
         memberAuthenticationMapper.deleteByMap(columnMap);
      }
      selectById.setIdcardNo(memberAuthenticationEntity.getIdcardNo());
@@ -616,6 +659,10 @@
      String walletNum = memberMapper.selectBBZCForBasicRealData();
      String walletCoinNum = memberMapper.selectHYZCForBasicRealData();
      String agentNum = memberMapper.selectDLZCForBasicRealData();
      double allCoin = 0 ;
      allCoin = (walletNum == null ? 0 : Double.parseDouble(walletNum))
            +(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum))
            +(agentNum == null ? 0 : Double.parseDouble(agentNum));
      
      double platformProfitAndLoss = 0 ;
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
@@ -640,6 +687,7 @@
         memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum);
         memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum);
         memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum);
         memberDataInfoVo.setAllCoin(allCoin);
      }
      selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
@@ -667,21 +715,24 @@
      Long memberId = memberEntity.getId();
      String walletCode = "USDT";
      BigDecimal amountUsdt = memberEntity.getCoinNumber();
      if(amountUsdt.compareTo(BigDecimal.ZERO) <= 0){
         return new FebsResponse().fail().message("金额需要大于0");
      }
      MemberEntity selectById = this.baseMapper.selectById(memberId);
      if(ObjectUtils.isEmpty(selectById)) {
         return new FebsResponse().message("用户已不存在");
         return new FebsResponse().fail().message("用户已不存在");
      }
      //获取币币钱包
      MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode);
      BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance();
      BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance();
      memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt));
      memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt));
      // 更新
      memberWalletCoinMapper.updateById(memberWalletCoinEntity);
       //添加币币资金划转历史记录
      MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
        memberAccountMoneyChangeEntity.setContent("充值");
@@ -694,19 +745,698 @@
        memberAccountMoneyChangeEntity.setCreateTime(new Date());
        memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy());
        memberAccountMoneyChangeEntity.setUpdateTime(new Date());
        memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
        /**
         * todo
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
      String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式
      String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT";
      //发送短信提醒
      String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。";
      SmsUtils.hxSmsSend(member.getPhone(), smsContent);
         */
      return new FebsResponse().success();
   }
   @Override
   public MemberInfoDetailVo selectMemberInfoDetailById(long id) {
      MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id);
      Long memberId = selectById.getMemberId();
      MemberInfoDetailVo memberInfoDetailVo = new MemberInfoDetailVo();
      //USDT充币总额+USDT提币总额
       String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealDataBymemberId(memberId,"USDT");
       String totalAmountUsdtBRoc = memberMapper.selectTotalAmountUsdtBForBasicRealDataBymemberId(memberId,"ROC");
       memberInfoDetailVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
       memberInfoDetailVo.setChargeCoinRoc(totalAmountUsdtBRoc == null ? 0 : Double.parseDouble(totalAmountUsdtBRoc));
       String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealDataBymemberId(memberId);
       memberInfoDetailVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
       //USDT充值总额+USDT提现总额
//       String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealDataBymemberId(memberId);
//       memberInfoDetailVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
//       String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealDataBymemberId(memberId);
//       memberInfoDetailVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
       //总剩余
//       double platformProfitAndLoss = 0 ;
//       platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
//       platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
//       platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
//       platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
//       memberInfoDetailVo.setTotalCoin(platformProfitAndLoss);
      //佣金
//      String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setFee(returnMoneyByMid == null ? 0 : Double.parseDouble(returnMoneyByMid));
      //开仓手续费总额
//      String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setClosingPrice(closingpriceByMid == null ? 0 : Double.parseDouble(closingpriceByMid));
      //平仓总手续费
//      String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setSellClosingPrice(sellClosingpriceByMid == null ? 0 : Double.parseDouble(sellClosingpriceByMid));
//      //总盈亏
//      String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setPlatformProfitAndLoss(rewardratioByMid == null ? 0 : Double.parseDouble(rewardratioByMid));
      //持仓手续费
//      String doingPrice = memberMapper.selectprepriceForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setDoingPrice(doingPrice == null ? 0 : Double.parseDouble(doingPrice));
      //账户金额
      String walletNum = memberMapper.selectBBZCForBasicRealDataBymemberId(memberId,"USDT");
      String walletNumRoc = memberMapper.selectBBZCForBasicRealDataBymemberId(memberId,"ROC");
      memberInfoDetailVo.setWalletCoinNum(walletNum == null ? 0 : Double.parseDouble(walletNum));
      memberInfoDetailVo.setWalletCoinNumRoc(walletNumRoc == null ? 0 : Double.parseDouble(walletNumRoc));
      //String walletCoinNum = memberMapper.selectHYZCForBasicRealDataBymemberId(memberId);
      //memberInfoDetailVo.setTotalContract(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum));
      //String agentNum = memberMapper.selectDLZCForBasicRealDataBymemberId(memberId);
      //memberInfoDetailVo.setAgentNum(agentNum == null ? 0 : Double.parseDouble(agentNum));
      return memberInfoDetailVo;
   }
   @Override
   public IPage<MemberCoinChargeVo> findmemberApplyCoinAloneInPage(MemberCoinChargeEntity memberCoinChargeEntity,
         QueryRequest request) {
      Page<MemberCoinChargeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberCoinChargeVo> findmemberQuickBuySaleListInPage = memberCoinChargeMapper.findmemberApplyCoinAloneInPage(page, memberCoinChargeEntity);
      List<MemberCoinChargeVo> records = findmemberQuickBuySaleListInPage.getRecords();
      if(records != null && records.size() > 0) {
         for(MemberCoinChargeVo memberCoinChargeVo : records) {
            Long memberId = memberCoinChargeVo.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;
               memberCoinChargeVo.setRealName(realName);
            }
         }
      }
        return findmemberQuickBuySaleListInPage;
   }
   @Override
   public IPage<MemberCoinWithdrawVo> findMemberWithdrawCoinAloneInPage(
         MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) {
      Page<MemberCoinWithdrawEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberCoinWithdrawVo> findmemberQuickBuySaleListInPage = memberCoinWithdrawMapper.findMemberWithdrawCoinAloneInPage(page, memberCoinWithdrawEntity);
      List<MemberCoinWithdrawVo> records = findmemberQuickBuySaleListInPage.getRecords();
      if(records != null && records.size() > 0) {
         for(MemberCoinWithdrawVo memberCoinWithdrawVo : records) {
            BigDecimal amount = memberCoinWithdrawVo.getAmount();
            BigDecimal feeAmount = memberCoinWithdrawVo.getFeeAmount();
            BigDecimal subtract = amount.subtract(feeAmount);
            memberCoinWithdrawVo.setRealAmount(subtract);
            Long memberId = memberCoinWithdrawVo.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;
               memberCoinWithdrawVo.setRealName(realName);
            }
         }
      }
        return findmemberQuickBuySaleListInPage;
   }
   @Override
   public IPage<MemberEntity> findMemberAloneInPage(MemberEntity member, QueryRequest request) {
        Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MemberEntity> selectMemberListInPage = this.baseMapper.findMemberAloneInPage(page, member);
        List<MemberEntity> records = selectMemberListInPage.getRecords();
        if(records != null && records.size() > 0) {
           for(MemberEntity memberEntitys : records) {
              String firstName = (memberEntitys.getFirstName() == null ? "" : memberEntitys.getFirstName());
              String secondName = (memberEntitys.getSecondName() == null ? "" : memberEntitys.getSecondName());
              memberEntitys.setRealName(firstName+secondName);
           }
        }
        return selectMemberListInPage;
    }
   @Override
   public IPage<MemberDataInfoVo> findMemberDataInfoAloneDtoListInPage(MemberEntity memberEntity,
         QueryRequest request) {
      Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.selectMemberDataInfoDtoRealListInPageAlone(page, memberEntity);
      //USDT充币总额+USDT提币总额
       String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealDataAlone();
       String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealDataAlone();
       //USDT充值总额+USDT提现总额
       String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealDataAlone();
       String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealDataAlone();
      //佣金
      String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealDataAlone();
      //开仓手续费总额
      String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealDataAlone();
      //平仓总手续费
      String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealDataAlone();
      //总盈亏
      String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataAlone();
      //持仓人数
      String notNullNumber = memberMapper.selectSFCCForBasicRealDataAlone();
      //币币账户不为空的人数
      String walletNumber = memberMapper.selectBBZHForBasicRealDataAlone();
      //合约账户不为空的人数
      String walletCoinNumber = memberMapper.selectHYZHForBasicRealDataAlone();
      //持仓手续费
      String doingPrice = memberMapper.selectprepriceForBasicRealDataAlone();
      //账户金额
      String walletNum = memberMapper.selectBBZCForBasicRealDataAlone();
      String walletCoinNum = memberMapper.selectHYZCForBasicRealDataAlone();
      String agentNum = memberMapper.selectDLZCForBasicRealDataAlone();
      double allCoin = 0 ;
      allCoin = (walletNum == null ? 0 : Double.parseDouble(walletNum))
            +(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum))
            +(agentNum == null ? 0 : Double.parseDouble(agentNum));
      double platformProfitAndLoss = 0 ;
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
      List<MemberDataInfoVo> records = selectMemberListInPage.getRecords();
      for(MemberDataInfoVo memberDataInfoVo : records) {
         memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
         memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
         memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
         memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
         memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid);
         memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid);
         memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid);
         memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid);
         memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber);
         memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber);
         memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber);
         memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+"");
         memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice);
         memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum);
         memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum);
         memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum);
         memberDataInfoVo.setAllCoin(allCoin);
      }
      selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
   }
   @Override
   public IPage<MemberDataInfoVo> findMemberDataInfoAllInPage(MemberEntity memberEntity, QueryRequest request) {
      Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.selectMemberDataInfoDtoListInPage(page, memberEntity);
      //USDT充币总额+USDT提币总额
       String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicData();
       String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicData();
       //USDT充值总额+USDT提现总额
       String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicData();
       String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicData();
      //佣金
      String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealData();
      //开仓手续费总额
      String closingpriceByMid = memberMapper.selectClosingpriceForBasicData();
      //平仓总手续费
      String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicData();
      //总盈亏
      String rewardratioByMid = memberMapper.selectRewardratioForBasicData();
      //持仓人数
      String notNullNumber = memberMapper.selectSFCCForBasicData();
      //币币账户不为空的人数
      String walletNumber = memberMapper.selectBBZHForBasicData();
      //合约账户不为空的人数
      String walletCoinNumber = memberMapper.selectHYZHForBasicData();
      //持仓手续费
      String doingPrice = memberMapper.selectprepriceForBasicData();
      //账户金额
      String walletNum = memberMapper.selectBBZCForBasicData();
      String walletCoinNum = memberMapper.selectHYZCForBasicData();
      String agentNum = memberMapper.selectDLZCForBasicData();
      double allCoin = 0 ;
      allCoin = (walletNum == null ? 0 : Double.parseDouble(walletNum))
            +(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum))
            +(agentNum == null ? 0 : Double.parseDouble(agentNum));
      double platformProfitAndLoss = 0 ;
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
      List<MemberDataInfoVo> records = selectMemberListInPage.getRecords();
      for(MemberDataInfoVo memberDataInfoVo : records) {
         memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
         memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
         memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
         memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
         memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid);
         memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid);
         memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid);
         memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid);
         memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber);
         memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber);
         memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber);
         memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+"");
         memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice);
         memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum);
         memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum);
         memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum);
         memberDataInfoVo.setAllCoin(allCoin);
      }
      selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
   }
   @Override
   public IPage<MemberDataInfoVo> findMemberDataInfoAllAloneListInPage(MemberEntity memberEntity,
         QueryRequest request) {
      Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.selectMemberDataInfoDtoListInPageAlone(page, memberEntity);
      //USDT充币总额+USDT提币总额
       String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicAllDataAlone();
       String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicAllDataAlone();
       //USDT充值总额+USDT提现总额
       String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicAllDataAlone();
       String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicAllDataAlone();
      //佣金
      String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicAllDataAlone();
      //开仓手续费总额
      String closingpriceByMid = memberMapper.selectClosingpriceForBasicAllDataAlone();
      //平仓总手续费
      String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicAllDataAlone();
      //总盈亏
      String rewardratioByMid = memberMapper.selectRewardratioForBasicAllDataAlone();
      //持仓人数
      String notNullNumber = memberMapper.selectSFCCForBasicAllDataAlone();
      //币币账户不为空的人数
      String walletNumber = memberMapper.selectBBZHForBasicAllDataAlone();
      //合约账户不为空的人数
      String walletCoinNumber = memberMapper.selectHYZHForBasicAllDataAlone();
      //持仓手续费
      String doingPrice = memberMapper.selectprepriceForBasicAllDataAlone();
      //账户金额
      String walletNum = memberMapper.selectBBZCForBasicAllDataAlone();
      String walletCoinNum = memberMapper.selectHYZCForBasicAllDataAlone();
      String agentNum = memberMapper.selectDLZCForBasicAllDataAlone();
      double allCoin = 0 ;
      allCoin = (walletNum == null ? 0 : Double.parseDouble(walletNum))
            +(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum))
            +(agentNum == null ? 0 : Double.parseDouble(agentNum));
      double platformProfitAndLoss = 0 ;
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
      List<MemberDataInfoVo> records = selectMemberListInPage.getRecords();
      for(MemberDataInfoVo memberDataInfoVo : records) {
         memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
         memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
         memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
         memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
         memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid);
         memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid);
         memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid);
         memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid);
         memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber);
         memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber);
         memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber);
         memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+"");
         memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice);
         memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum);
         memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum);
         memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum);
         memberDataInfoVo.setAllCoin(allCoin);
      }
      selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
   }
   @Override
   public IPage<MemberEntity> findMemberListTestInPage(MemberEntity member, QueryRequest request) {
        Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MemberEntity> selectMemberListInPage = this.baseMapper.findMemberListTestInPage(page, member);
        List<MemberEntity> records = selectMemberListInPage.getRecords();
        if(records != null && records.size() > 0) {
           for(MemberEntity memberEntitys : records) {
              String firstName = (memberEntitys.getFirstName() == null ? "" : memberEntitys.getFirstName());
              String secondName = (memberEntitys.getSecondName() == null ? "" : memberEntitys.getSecondName());
              memberEntitys.setRealName(firstName+secondName);
           }
        }
        return selectMemberListInPage;
    }
   @Override
   public IPage<MemberCoinWithdrawVo> findMemberWithdrawCoinTestListInPage(
         MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) {
      Page<MemberCoinWithdrawEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberCoinWithdrawVo> findmemberQuickBuySaleListInPage = memberCoinWithdrawMapper.findMemberWithdrawCoinTestListInPage(page, memberCoinWithdrawEntity);
      List<MemberCoinWithdrawVo> records = findmemberQuickBuySaleListInPage.getRecords();
      if(records != null && records.size() > 0) {
         for(MemberCoinWithdrawVo memberCoinWithdrawVo : records) {
            BigDecimal amount = memberCoinWithdrawVo.getAmount();
            BigDecimal feeAmount = memberCoinWithdrawVo.getFeeAmount();
            BigDecimal subtract = amount.subtract(feeAmount);
            memberCoinWithdrawVo.setRealAmount(subtract);
            Long memberId = memberCoinWithdrawVo.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;
               memberCoinWithdrawVo.setRealName(realName);
            }
         }
      }
        return findmemberQuickBuySaleListInPage;
   }
   @Override
   public IPage<MemberCoinChargeVo> findMemberApplyCoinAloneTestInPage(MemberCoinChargeEntity memberCoinChargeEntity,
         QueryRequest request) {
      Page<MemberCoinChargeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberCoinChargeVo> findmemberQuickBuySaleListInPage = memberCoinChargeMapper.findMemberApplyCoinAloneTestInPage(page, memberCoinChargeEntity);
      List<MemberCoinChargeVo> records = findmemberQuickBuySaleListInPage.getRecords();
      if(records != null && records.size() > 0) {
         for(MemberCoinChargeVo memberCoinChargeVo : records) {
            Long memberId = memberCoinChargeVo.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;
               memberCoinChargeVo.setRealName(realName);
            }
         }
      }
        return findmemberQuickBuySaleListInPage;
   }
   @Override
   public IPage<MemberEntity> findMemberAloneTestInPage(MemberEntity member, QueryRequest request) {
        Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MemberEntity> selectMemberListInPage = this.baseMapper.findMemberAloneTestInPage(page, member);
        List<MemberEntity> records = selectMemberListInPage.getRecords();
        if(records != null && records.size() > 0) {
           for(MemberEntity memberEntitys : records) {
              String firstName = (memberEntitys.getFirstName() == null ? "" : memberEntitys.getFirstName());
              String secondName = (memberEntitys.getSecondName() == null ? "" : memberEntitys.getSecondName());
              memberEntitys.setRealName(firstName+secondName);
           }
        }
        return selectMemberListInPage;
    }
   @Override
   public IPage<MemberDataInfoVo> findMemberDataInfoAloneTestDtoListInPage(MemberEntity memberEntity,
         QueryRequest request) {
      Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.findMemberDataInfoAloneTestDtoListInPage(page, memberEntity);
      //USDT充币总额+USDT提币总额
       String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealTestDataAlone();
       String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealTestDataAlone();
       //USDT充值总额+USDT提现总额
       String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealTestDataAlone();
       String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealTestDataAlone();
      //佣金
      String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealTestDataAlone();
      //开仓手续费总额
      String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealTestDataAlone();
      //平仓总手续费
      String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealTestDataAlone();
      //总盈亏
      String rewardratioByMid = memberMapper.selectRewardratioForBasicRealTestDataAlone();
      //持仓人数
      String notNullNumber = memberMapper.selectSFCCForBasicRealTestDataAlone();
      //币币账户不为空的人数
      String walletNumber = memberMapper.selectBBZHForBasicRealTestDataAlone();
      //合约账户不为空的人数
      String walletCoinNumber = memberMapper.selectHYZHForBasicRealTestDataAlone();
      //持仓手续费
      String doingPrice = memberMapper.selectprepriceForBasicRealTestDataAlone();
      //账户金额
      String walletNum = memberMapper.selectBBZCForBasicRealTestDataAlone();
      String walletCoinNum = memberMapper.selectHYZCForBasicRealTestDataAlone();
      String agentNum = memberMapper.selectDLZCForBasicRealTestDataAlone();
      double allCoin = 0 ;
      allCoin = (walletNum == null ? 0 : Double.parseDouble(walletNum))
            +(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum))
            +(agentNum == null ? 0 : Double.parseDouble(agentNum));
      double platformProfitAndLoss = 0 ;
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
      List<MemberDataInfoVo> records = selectMemberListInPage.getRecords();
      for(MemberDataInfoVo memberDataInfoVo : records) {
         memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
         memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
         memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
         memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780));
         memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid);
         memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid);
         memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid);
         memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid);
         memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber);
         memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber);
         memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber);
         memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+"");
         memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice);
         memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum);
         memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum);
         memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum);
         memberDataInfoVo.setAllCoin(allCoin);
      }
      selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
   }
   @Override
   public IPage<MemberDataInfoVo> findMemberDataInfoAllAloneTestListInPage(MemberEntity memberEntity,
         QueryRequest request) {
      Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
      IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.findMemberDataInfoAllAloneTestListInPage(page, memberEntity);
      //USDT充币总额+USDT提币总额
       String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealTestAllDataAlone();
       String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealTestAllDataAlone();
       //USDT充值总额+USDT提现总额
       String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealTestAllDataAlone();
       String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealTestAllDataAlone();
      //佣金
      String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealTestAllDataAlone();
      //开仓手续费总额
      String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealTestAllDataAlone();
      //平仓总手续费
      String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealTestAllDataAlone();
      //总盈亏
      String rewardratioByMid = memberMapper.selectRewardratioForBasicRealTestAllDataAlone();
      //持仓人数
      String notNullNumber = memberMapper.selectSFCCForBasicRealTestAllDataAlone();
      //币币账户不为空的人数
      String walletNumber = memberMapper.selectBBZHForBasicRealTestAllDataAlone();
      //合约账户不为空的人数
      String walletCoinNumber = memberMapper.selectHYZHForBasicRealTestAllDataAlone();
      //持仓手续费
      String doingPrice = memberMapper.selectprepriceForBasicRealTestAllDataAlone();
      //账户金额
      String walletNum = memberMapper.selectBBZCForBasicRealTestAllDataAlone();
      String walletCoinNum = memberMapper.selectHYZCForBasicRealTestAllDataAlone();
      String agentNum = memberMapper.selectDLZCForBasicRealTestAllDataAlone();
      double allCoin = 0 ;
      allCoin = (walletNum == null ? 0 : Double.parseDouble(walletNum))
            +(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum))
            +(agentNum == null ? 0 : Double.parseDouble(agentNum));
      double platformProfitAndLoss = 0 ;
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
      platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780));
      platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
      List<MemberDataInfoVo> records = selectMemberListInPage.getRecords();
      for(MemberDataInfoVo memberDataInfoVo : records) {
         memberDataInfoVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
         memberDataInfoVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
         memberDataInfoVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
         memberDataInfoVo.setAppealCoin(totalAmountUsdtS == null ? 0 : (Double.parseDouble(totalAmountUsdtS)-6780));
         memberDataInfoVo.setClosingPrice(closingpriceByMid == null ? "0" : closingpriceByMid);
         memberDataInfoVo.setSellClosingPrice(sellClosingpriceByMid == null ? "0" : sellClosingpriceByMid);
         memberDataInfoVo.setFee(returnMoneyByMid == null ? "0" : returnMoneyByMid);
         memberDataInfoVo.setYingkui(rewardratioByMid == null ? "0" : rewardratioByMid);
         memberDataInfoVo.setNotNullNumber(notNullNumber == null ? "0" : notNullNumber);
         memberDataInfoVo.setWalletNumber(walletNumber == null ? "0" : walletNumber);
         memberDataInfoVo.setWalletCoinNumber(walletCoinNumber == null ? "0" : walletCoinNumber);
         memberDataInfoVo.setPlatformProfitAndLoss(platformProfitAndLoss == 0 ? "0" : platformProfitAndLoss+"");
         memberDataInfoVo.setDoingPrice(doingPrice == null ? "0" : doingPrice);
         memberDataInfoVo.setWalletNum(walletNum == null ? "0" : walletNum);
         memberDataInfoVo.setWalletCoinNum(walletCoinNum == null ? "0" : walletCoinNum);
         memberDataInfoVo.setAgentNum(agentNum == null ? "0" : agentNum);
         memberDataInfoVo.setAllCoin(allCoin);
      }
      selectMemberListInPage.setTotal(1);
        return selectMemberListInPage;
   }
   @Override
   public MemberInfoDetailVo  selectMemberInfoDetailByInviteId(String inviteId) {
      String id = memberMapper.selectMemberInfoDetailByInviteId(inviteId);
      Long memberId = Long.parseLong(id);
      MemberInfoDetailVo memberInfoDetailVo = new MemberInfoDetailVo();
      //USDT充币总额+USDT提币总额
      String totalAmountUsdtB = memberMapper.selectTotalAmountUsdtBForBasicRealDataBymemberId(memberId,"USDT");
      String totalAmountUsdtBRoc = memberMapper.selectTotalAmountUsdtBForBasicRealDataBymemberId(memberId,"ROC");
      memberInfoDetailVo.setChargeCoin(totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
      memberInfoDetailVo.setChargeCoinRoc(totalAmountUsdtBRoc == null ? 0 : Double.parseDouble(totalAmountUsdtBRoc));
      String totalAmountUsdtS = memberMapper.selectTotalAmountUsdtSForBasicRealDataBymemberId(memberId);
      memberInfoDetailVo.setAppealCoin(totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
      //USDT充值总额+USDT提现总额
//       String totalAmountUsdtCZ = memberMapper.selectTotalAmountUsdtCZForBasicRealDataBymemberId(memberId);
//       memberInfoDetailVo.setChargeUsdt(totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
//       String totalAmountUsdtTX = memberMapper.selectTotalAmountUsdtTXForBasicRealDataBymemberId(memberId);
//       memberInfoDetailVo.setAppealUsdt(totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
      //总剩余
//       double platformProfitAndLoss = 0 ;
//       platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtB == null ? 0 : Double.parseDouble(totalAmountUsdtB));
//       platformProfitAndLoss = platformProfitAndLoss + (totalAmountUsdtCZ == null ? 0 : Double.parseDouble(totalAmountUsdtCZ));
//       platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtS == null ? 0 : Double.parseDouble(totalAmountUsdtS));
//       platformProfitAndLoss = platformProfitAndLoss - (totalAmountUsdtTX == null ? 0 : Double.parseDouble(totalAmountUsdtTX));
//       memberInfoDetailVo.setTotalCoin(platformProfitAndLoss);
      //佣金
//      String returnMoneyByMid = memberMapper.selectReturnMoneyForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setFee(returnMoneyByMid == null ? 0 : Double.parseDouble(returnMoneyByMid));
      //开仓手续费总额
//      String closingpriceByMid = memberMapper.selectClosingpriceForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setClosingPrice(closingpriceByMid == null ? 0 : Double.parseDouble(closingpriceByMid));
      //平仓总手续费
//      String sellClosingpriceByMid = memberMapper.selectSellClosingpriceForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setSellClosingPrice(sellClosingpriceByMid == null ? 0 : Double.parseDouble(sellClosingpriceByMid));
//      //总盈亏
//      String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setPlatformProfitAndLoss(rewardratioByMid == null ? 0 : Double.parseDouble(rewardratioByMid));
      //持仓手续费
//      String doingPrice = memberMapper.selectprepriceForBasicRealDataBymemberId(memberId);
//      memberInfoDetailVo.setDoingPrice(doingPrice == null ? 0 : Double.parseDouble(doingPrice));
      //账户金额
      String walletNum = memberMapper.selectBBZCForBasicRealDataBymemberId(memberId,"USDT");
      String walletNumRoc = memberMapper.selectBBZCForBasicRealDataBymemberId(memberId,"ROC");
      String bzzNum = memberMapper.selectBBZCForBasicRealDataBymemberId(memberId,"BZZ");
      memberInfoDetailVo.setWalletCoinNum(walletNum == null ? 0 : Double.parseDouble(walletNum));
      memberInfoDetailVo.setWalletCoinNumRoc(walletNumRoc == null ? 0 : Double.parseDouble(walletNumRoc));
      memberInfoDetailVo.setBzzNum(bzzNum == null ? 0 : Double.parseDouble(bzzNum));
      //String walletCoinNum = memberMapper.selectHYZCForBasicRealDataBymemberId(memberId);
      //memberInfoDetailVo.setTotalContract(walletCoinNum == null ? 0 : Double.parseDouble(walletCoinNum));
      //String agentNum = memberMapper.selectDLZCForBasicRealDataBymemberId(memberId);
      //memberInfoDetailVo.setAgentNum(agentNum == null ? 0 : Double.parseDouble(agentNum));
      return memberInfoDetailVo;
   }
   @Override
   public IPage<MemberEntity> memberDataInfoListSearchs(MemberEntity member, QueryRequest request) {
        Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MemberEntity> selectMemberListInPage = this.baseMapper.selectDataInfoListSearchs(page, member);
        List<MemberEntity> records = selectMemberListInPage.getRecords();
        Set<MemberEntity> set = new HashSet<>();
        if(CollUtil.isNotEmpty(records)) {
           if(StrUtil.isNotBlank(member.getAccount())) {
              MemberEntity memberEntity = records.get(0);
              //当前查询下级关系
              String inviteId = memberEntity.getInviteId();
              List<MemberEntity> members = memberMapper.selectMemberDataInfoListSearchs(inviteId);
              if(CollUtil.isNotEmpty(members)) {
                 for(MemberEntity semberEntity : members) {
                    set.add(semberEntity);
                 }
              }
              //当前查询上级关系
              String refererIds = memberEntity.getRefererIds();
              String[] strs = refererIds.split(",");
              if(ObjectUtil.isNotEmpty(strs)) {
                 for(int i=0,len=strs.length;i<len;i++){
                    String string = strs[i].toString();
                    if(StrUtil.isNotEmpty(string)) {
                       MemberEntity mem = memberMapper.selectMemberByInviteId(string);
                       set.add(mem);
                    }
                 }
              }
           }
           if(set.size() > 0) {
              records.addAll(set);
           }
        }
        return selectMemberListInPage;
   }
   @Override
   public MemberLimitDto memberLimit() {
      Map<String,String> map = new HashMap<>();
      // 算力系统提币限制
      String roc_limit_transfer = redisUtils.getString("ROC_LIMIT_TRANSFER");
      // 交易所交易限制
      String sell_limit_key_phone = redisUtils.getString("SELL_LIMIT_KEY_PHONE");
      String golden_limit_transfer = redisUtils.getString("GOLDEN_LIMIT_TRANSFER");
      String buy_limit_key_phone = redisUtils.getString("BUY_LIMIT_KEY_PHONE");
        MemberLimitDto limitDto = new MemberLimitDto();
        limitDto.setJysmcxz(sell_limit_key_phone);
        limitDto.setJystbxz(golden_limit_transfer);
        limitDto.setSlxttbxz(roc_limit_transfer);
      limitDto.setJysmrxz(buy_limit_key_phone);
      return limitDto;
   }
    @Override
    public void setLimit(MemberLimitDto memberLimitDto) {
        redisUtils.set("ROC_LIMIT_TRANSFER",memberLimitDto.getSlxttbxz());
        // 交易所交易限制
        redisUtils.set("SELL_LIMIT_KEY_PHONE",memberLimitDto.getJysmcxz());
        redisUtils.set("GOLDEN_LIMIT_TRANSFER",memberLimitDto.getJystbxz());
        redisUtils.set("BUY_LIMIT_KEY_PHONE",memberLimitDto.getJysmrxz());
    }
}