Helius
2020-11-30 50d3d5e3e3282f757ea639f9ca1939d429c6fd5d
src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java
@@ -57,6 +57,9 @@
    private MemberWalletCoinDao memberWalletCoinDao;
    @Resource
    private UsdtEthService usdtEthService;
    @Resource
    private RedisUtils redisUtils;
    private final static String EOS_SEQ_KEY = "eos_seq_key";
@@ -502,7 +505,7 @@
        }
        Long memberId = memberCoinAddress.getMemberId();
        // 查询钱包 并更新
        MemberWalletCoinEntity walletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.ROC.name());
        MemberWalletCoinEntity walletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.SER.name());
        if (walletCoinEntity == null) {
            // 创建一个钱包
            // 创建这个钱包
@@ -518,15 +521,15 @@
        memberWalletCoinDao.updateBlockBalance(walletCoinEntity.getId(), balance, BigDecimal.ZERO, 0);
        String orderNo = insertCoinCharge(address, memberId, balance, CoinTypeEnum.ROC.name(), "", BigDecimal.ZERO, null);
        String orderNo = insertCoinCharge(address, memberId, balance, CoinTypeEnum.SER.name(), "", BigDecimal.ZERO, null);
        // 插入财务记录
        LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", balance, CoinTypeEnum.ROC.name(), 1, 1);
        LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", balance, CoinTypeEnum.SER.name(), 1, 1);
        try {
            ThreadPoolUtils.sendDingTalk(5);
            MemberEntity member = memberDao.selectById(memberId);
            if (StrUtil.isNotBlank(member.getPhone())) {
                String amount = balance.toPlainString() + "ROC";
                String amount = balance.toPlainString() + "SER";
                Sms106Send.sendRechargeMsg(member.getPhone(), DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN), orderNo);
            } else {
                SubMailSend.sendRechargeMail(member.getEmail(), DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN), orderNo);
@@ -538,6 +541,7 @@
    }
    @Override
    @Transactional
    public void updateEthUsdtNew(EthUsdtChargeDto ethUsdtChargeDto) {
        String address = ethUsdtChargeDto.getAddress();
        String hash = ethUsdtChargeDto.getHash();
@@ -549,7 +553,14 @@
        if(CollectionUtils.isNotEmpty(memberCoinChargeEntities)){
            return;
        }
        MemberCoinAddressEntity coinAddressEntity = memberCoinAddressDao.selectBlockAddressWithTag(null, CoinTypeEnum.USDT.toString(), "ERC20");
        // 校验这个交易是否成功
        EthService ethService  = new EthService();
        boolean b = ethService.checkTransferResult(hash);
        if(!b){
            log.info("#USDT假充值:{}#", hash);
            return;
        }
        MemberCoinAddressEntity coinAddressEntity = memberCoinAddressDao.selectCoinAddressByAddressAndSymbol(address, CoinTypeEnum.USDT.toString());
        if (coinAddressEntity == null) {
            return;
        }
@@ -576,6 +587,13 @@
            } else {
                SubMailSend.sendRechargeMail(member.getEmail(), DateUtil.format(new Date(), DatePattern.NORM_DATETIME_MINUTE_PATTERN), orderNo);
            }
           // 同步
            try{
                usdtEthService.pollByAddress(address);
            }catch (Exception e){
            }
        }
    }
@@ -603,4 +621,5 @@
        memberCoinChargeDao.insert(memberCoinChargeEntity);
        return orderNo;
    }
}