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