From 580fe843a333628795d619c5744a8353c44eb8ed Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Thu, 13 Feb 2025 11:31:53 +0800 Subject: [PATCH] feat(mall): 实现充值金额处理和唯一标识生成 --- src/main/java/cc/mrbird/febs/mall/chain/trcCoin/quartz/ChainTrcListenerJob.java | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/chain/trcCoin/quartz/ChainTrcListenerJob.java b/src/main/java/cc/mrbird/febs/mall/chain/trcCoin/quartz/ChainTrcListenerJob.java index b05c241..f5f99b8 100644 --- a/src/main/java/cc/mrbird/febs/mall/chain/trcCoin/quartz/ChainTrcListenerJob.java +++ b/src/main/java/cc/mrbird/febs/mall/chain/trcCoin/quartz/ChainTrcListenerJob.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.chain.trcCoin.OkHttpUtil2; import cc.mrbird.febs.mall.chain.trcCoin.OklinkDataPageDetailModel; import cc.mrbird.febs.mall.chain.trcCoin.OklinkModel; @@ -20,6 +22,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; @@ -37,6 +40,8 @@ private MallChargeMapper mallChargeMapper; @Resource private AgentProducer agentProducer; + @Resource + private RedisUtils redisUtils; /** * 五分钟 毫秒 @@ -125,11 +130,19 @@ continue; } - BigDecimal amount = new BigDecimal(tokenTransfer.getAmount()); + BigDecimal amount = new BigDecimal(tokenTransfer.getAmount()).setScale(2, RoundingMode.DOWN); + String chargeRedis = redisUtils.getString(AppContants.CHARGE_AMOUNT_PROFIX + amount); + if (StrUtil.isBlank(chargeRedis)) { + log.info("Redis未扫描到充值金额:{}",transactionId); + return; + }else{ + redisUtils.del(AppContants.CHARGE_AMOUNT_PROFIX + amount); + log.info("Redis扫描到充值记录:{},{}",transactionId,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); -- Gitblit v1.9.1