KKSU
2025-03-17 faaf907706c62c81c2a91092b950b30c89159afc
src/main/java/cc/mrbird/febs/mall/chain/ercCoin/BscUsdtContractEvent.java
@@ -2,6 +2,8 @@
import cc.mrbird.febs.common.enumerates.RunVipDataDictionaryEnum;
import cc.mrbird.febs.common.enumerates.YesOrNoEnum;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.entity.MallCharge;
import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.mall.mapper.MallChargeMapper;
@@ -29,15 +31,18 @@
    private MallChargeMapper mallChargeMapper;
    @Resource
    private AgentProducer agentProducer;
    @Resource
    private RedisUtils redisUtils;
    @Override
    public void sdmUSDT(EthUsdtContract.TransferEventResponse e) {
        if (e.to == null) {
            return;
        }
        String sysAddress = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                RunVipDataDictionaryEnum.CHARGE_SYS_ADDRESS_BSC.getType(),  RunVipDataDictionaryEnum.CHARGE_SYS_ADDRESS_BSC.getCode()
        ).getValue();
//        String sysAddress = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
//                RunVipDataDictionaryEnum.CHARGE_SYS_ADDRESS_BSC.getType(),  RunVipDataDictionaryEnum.CHARGE_SYS_ADDRESS_BSC.getCode()
//        ).getValue();
        String sysAddress = "0x056454C4f080D3574E9E697dBBc05031d070BaA0";
        String type = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                RunVipDataDictionaryEnum.CHARGE_TYPE_BSC.getType(),  RunVipDataDictionaryEnum.CHARGE_TYPE_BSC.getCode()
        ).getValue();
@@ -70,11 +75,22 @@
            BigInteger tokens = e.tokens;
            BigDecimal amount = new BigDecimal(tokens.toString())
                    .divide(BigDecimal.TEN.pow(decimals), decimals, RoundingMode.HALF_DOWN)
                    .setScale(2,BigDecimal.ROUND_DOWN);
                    .setScale(2,RoundingMode.DOWN);
            String chargeRedis = redisUtils.getString(AppContants.CHARGE_AMOUNT_PROFIX + amount);
            if (StrUtil.isBlank(chargeRedis)) {
                log.info("Redis未扫描到充值金额:{}",transactionHash);
                return;
            }else{
                redisUtils.del(AppContants.CHARGE_AMOUNT_PROFIX + amount);
                log.info("Redis扫描到充值记录:{},{}",transactionHash,chargeRedis);
            }
            LambdaQueryWrapper<MallCharge> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(MallCharge::getAddress, fromAddress);
            queryWrapper.eq(MallCharge::getSysAddress, sysAddress);
            queryWrapper.eq(MallCharge::getAmount, amount);
            queryWrapper.eq(MallCharge::getAmountReal, amount);
            queryWrapper.eq(MallCharge::getMemberId, Long.parseLong(chargeRedis));
            queryWrapper.eq(MallCharge::getType, type);
            queryWrapper.eq(MallCharge::getState, YesOrNoEnum.ING.getValue());
            List<MallCharge> mallCharges = mallChargeMapper.selectList(queryWrapper);
@@ -85,8 +101,12 @@
            MallCharge mallCharge = mallCharges.get(0);
            mallCharge.setState(YesOrNoEnum.YES.getValue());
            mallChargeMapper.updateById(mallCharge);
            agentProducer.sendBuyVipSuccessMsg(mallCharge.getId());
            if(StrUtil.isNotEmpty(mallCharge.getVipCode())){
                agentProducer.sendBuyVipSuccessMsg(mallCharge.getId());
            }else{
                agentProducer.sendChargeSuccessMsg(mallCharge.getId());
            }
            log.info("扫描到用户ID:{},地址:{},充值金额:{}",mallCharge.getMemberId(),fromAddress,amount);