xiaoyong931011
2021-12-08 f5e6133809c553cfd9fb28ee61019927c547c374
src/main/java/com/xcong/excoin/modules/coin/service/impl/BlockCoinServiceImpl.java
@@ -415,11 +415,26 @@
        String address = dto.getAddress();
        BigDecimal amount = dto.getBalance();
        String hash = dto.getHash();
        String symbol;
        if (StrUtil.isBlank(dto.getSymbol())) {
            log.error("更新trc20失败:{}, {}, {}, {}", hash, dto.getSymbol(), amount, address);
            return;
        }
        List<String> symbolArr = StrUtil.split(dto.getSymbol(), '_');
        if (CollUtil.isEmpty(symbolArr) || symbolArr.size() != 2) {
            log.error("更新trc20失败:{}, {}, {}, {}", hash, dto.getSymbol(), amount, address);
            return;
        }
        symbol = symbolArr.get(0);
        // 判断有无
        //List<MemberCoinAddressEntity> addressList = memberCoinAddressDao.selectAllBlockAddressBySymbolAndTag(CoinTypeEnum.USDT.name(), "TRC20");
        Map<String, Object> hashParam = new HashMap<>();
        // 校验hash是否已同步过
        hashParam.put("hash", hash);
        hashParam.put("symbol", symbol);
        List<MemberCoinChargeEntity> memberCoinChargeEntities = memberCoinChargeDao.selectByMap(hashParam);
        if (CollectionUtils.isNotEmpty(memberCoinChargeEntities)) {
            // 若已同步过
@@ -427,16 +442,16 @@
        }
        // 添加钱包余额
        // 用户ID
        MemberCoinAddressEntity memberCoinAddress = memberCoinAddressDao.selectCoinAddressByAddressAndSymbolTag(address, CoinTypeEnum.USDT.name(),"TRC20");
        MemberCoinAddressEntity memberCoinAddress = memberCoinAddressDao.selectCoinAddressByAddressAndSymbolTag(address, symbol,"TRC20");
        if (memberCoinAddress == null) {
            return;
        }
        Long memberId = memberCoinAddress.getMemberId();
        // 查询钱包 并更新
        MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.USDT.name());
        MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbol);
        memberWalletCoinDao.updateBlockBalance(memberWalletCoinEntity.getId(), amount, BigDecimal.ZERO, 0);
        // 添加冲币记录
        String orderNo = insertCoinCharge(address, memberId, amount, CoinTypeEnum.USDT.name(), "TRC20", BigDecimal.ZERO, hash);
        String orderNo = insertCoinCharge(address, memberId, amount, symbol, "TRC20", BigDecimal.ZERO, hash);
//        LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", amount, CoinTypeEnum.USDT.name(), 1, 1);
        ThreadPoolUtils.sendDingTalk(5);
@@ -470,7 +485,7 @@
        }
        Long memberId = memberCoinAddress.getMemberId();
        // 查询钱包 并更新
        MemberWalletCoinEntity walletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.BZZ.name());
        MemberWalletCoinEntity walletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, CoinTypeEnum.XCC.name());
        if (walletCoinEntity == null) {
            // 创建一个钱包
            // 创建这个钱包
@@ -486,15 +501,15 @@
        memberWalletCoinDao.updateBlockBalance(walletCoinEntity.getId(), balance, BigDecimal.ZERO, 0);
        String orderNo = insertCoinCharge(address, memberId, balance, CoinTypeEnum.BZZ.name(), "", BigDecimal.ZERO, null);
        String orderNo = insertCoinCharge(address, memberId, balance, CoinTypeEnum.XCC.name(), "", BigDecimal.ZERO, null);
        // 插入财务记录
        LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", balance, CoinTypeEnum.BZZ.name(), 1, 1);
        LogRecordUtils.insertMemberAccountMoneyChange(memberId, "转入", balance, CoinTypeEnum.XCC.name(), 1, 1);
        try {
            ThreadPoolUtils.sendDingTalk(5);
            MemberEntity member = memberDao.selectById(memberId);
            if (StrUtil.isNotBlank(member.getPhone())) {
                String amount = balance.toPlainString() + "BZZ";
                String amount = balance.toPlainString() + "XCC";
                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);