Helius
2020-11-03 231c4a3b97fff265545e88931d230b97290a9832
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -11,24 +11,8 @@
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.Sms106Send;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
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;
import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity;
import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
import com.xcong.excoin.modules.member.mapper.AgentFriendRelationMapper;
import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper;
import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper;
import com.xcong.excoin.modules.member.mapper.MemberCoinAddressMapper;
import com.xcong.excoin.modules.member.mapper.MemberCoinChargeMapper;
import com.xcong.excoin.modules.member.mapper.MemberCoinWithdrawMapper;
import com.xcong.excoin.modules.member.mapper.MemberMapper;
import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper;
import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper;
import com.xcong.excoin.modules.member.entity.*;
import com.xcong.excoin.modules.member.mapper.*;
import com.xcong.excoin.modules.member.service.EthService;
import com.xcong.excoin.modules.member.service.IMemberService;
import com.xcong.excoin.modules.member.service.RocService;
@@ -85,6 +69,8 @@
   private final MemberAuthenticationMapper memberAuthenticationMapper;
   
   private final AgentFriendRelationMapper agentFriendRelationMapper;
   private final TdFinancialReordDao tdFinancialReordDao;
   
   @Override
   public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity,
@@ -471,9 +457,9 @@
      }
      // 转币 需要扣除手续费
      amount = amount.subtract(selectById.getFeeAmount());
      if("ROC".equals(symbol) && !"Y".equals(selectById.getIsInside())){
      if("RFNC".equals(symbol) && !"Y".equals(selectById.getIsInside())){
         // 如果是ROC  则自动转
         String transfer = RocService.transfer(amount, address, "ROC");
         String transfer = RocService.transfer(amount, address, "RFNC");
         if(!"success".equals(transfer)){
            FebsResponse febsResponse = new FebsResponse();
            return  febsResponse.fail().message(transfer);
@@ -490,36 +476,53 @@
      memberWalletCoinMapper.updateById(walletCoin);
      
      if ("Y".equals(selectById.getIsInside())) {
         Map<String, Object> columnMap = new HashMap<>();
         columnMap.put("symbol", symbol);
         columnMap.put("address", address);
         // 如果是内部转账 则需要将币加到内部地址
         List<MemberCoinAddressEntity> selectByMap = memberCoinAddressMapper.selectByMap(columnMap);
         if(selectByMap == null || selectByMap.isEmpty()) {
            return new FebsResponse().fail().message("地址有误,请拒绝!");
         // 查询算力系统中是否存在该地址
         TdCoinWallet tdCoinWallet = memberWalletCoinMapper.selectTdCoinWalletByAddress(address, "USDT");
         if (tdCoinWallet != null) {
            // 更新算力系统中用户钱包余额
            memberWalletCoinMapper.updateTdCoinWalletAvaliable(amount, address);
            TdFinancialReord tdFinancialReord = new TdFinancialReord();
            tdFinancialReord.setAmount(amount);
            tdFinancialReord.setCreateTime(new Date());
            tdFinancialReord.setMemId(tdCoinWallet.getMemId());
            tdFinancialReord.setSymbol("USDT");
            tdFinancialReord.setTitle("USDT交易所转账");
            tdFinancialReord.setContent("USDT交易所转账");
            // 插入算力系统中财务记录
            tdFinancialReordDao.insert(tdFinancialReord);
         } else {
            Map<String, Object> columnMap = new HashMap<>();
            columnMap.put("symbol", symbol);
            columnMap.put("address", address);
            // 如果是内部转账 则需要将币加到内部地址
            List<MemberCoinAddressEntity> selectByMap = memberCoinAddressMapper.selectByMap(columnMap);
            if (selectByMap == null || selectByMap.isEmpty()) {
               return new FebsResponse().fail().message("地址有误,请拒绝!");
            }
            Long aimMemberId = selectByMap.get(0).getMemberId();
            MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol);
            BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(amount);
            BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(amount);
            aimWalletCoin.setTotalBalance(addTotal);
            aimWalletCoin.setAvailableBalance(addAvailable);
            memberWalletCoinMapper.updateById(aimWalletCoin);
            MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
            memberAccountMoneyChangeEntity.setContent("收款");
            memberAccountMoneyChangeEntity.setMemberId(aimMemberId);
            memberAccountMoneyChangeEntity.setAmount(amount);
            memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
            memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol());
            memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
            memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy());
            memberAccountMoneyChangeEntity.setCreateTime(new Date());
            memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy());
            memberAccountMoneyChangeEntity.setUpdateTime(new Date());
            memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
         }
         Long aimMemberId = selectByMap.get(0).getMemberId();
         MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol);
         BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(amount);
         BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(amount);
         aimWalletCoin.setTotalBalance(addTotal);
         aimWalletCoin.setAvailableBalance(addAvailable);
         memberWalletCoinMapper.updateById(aimWalletCoin);
         MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
         memberAccountMoneyChangeEntity.setContent("收款");
         memberAccountMoneyChangeEntity.setMemberId(aimMemberId);
         memberAccountMoneyChangeEntity.setAmount(amount);
         memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
         memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol());
         memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
         memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy());
           memberAccountMoneyChangeEntity.setCreateTime(new Date());
           memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy());
           memberAccountMoneyChangeEntity.setUpdateTime(new Date());
         memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
      }
      
      Map<String, Object> columnMaps = new HashMap<>();