From e7163ceea7970a5022da2f45b51edd0c749ad14e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 01 Feb 2023 09:57:12 +0800
Subject: [PATCH] 1

---
 src/main/resources/mapper/modules/MemberCoinChargeDao.xml           |    5 +++++
 src/main/java/cc/mrbird/febs/mall/mapper/MemberCoinChargeDao.java   |    1 +
 src/main/java/cc/mrbird/febs/mall/service/impl/BlockSeriveImpl.java |    9 ++++++++-
 3 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MemberCoinChargeDao.java b/src/main/java/cc/mrbird/febs/mall/mapper/MemberCoinChargeDao.java
index 347a5fc..ae4a7dc 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MemberCoinChargeDao.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MemberCoinChargeDao.java
@@ -12,4 +12,5 @@
 
     List<MemberCoinChargeEntity> selectAllBySymbolAndTag(@Param("symbol") String symbol, @Param("tag") String tag, @Param("status") Integer status);
 
+    MemberCoinChargeEntity selectByHash(@Param("hash") String hash);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/BlockSeriveImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/BlockSeriveImpl.java
index 8e7c211..971fbb8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/BlockSeriveImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/BlockSeriveImpl.java
@@ -16,6 +16,7 @@
 import cc.mrbird.febs.mall.mapper.MemberCoinChargeDao;
 import cc.mrbird.febs.mall.service.BlockSerive;
 import cc.mrbird.febs.rabbit.producter.AgentProducer;
+import cn.hutool.core.util.ObjectUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
@@ -117,6 +118,12 @@
     public FebsResponse setChargeInfo(ApiChargeInfoDto apiChargeInfoDto) {
         Long mId = LoginUserUtil.getLoginUser().getId();
         MallMember member = memberDao.selectById(mId);
+
+        String hash = apiChargeInfoDto.getHash();
+        MemberCoinChargeEntity memberCoinChargeEntityExist  = memberCoinChargeDao.selectByHash(hash);
+        if(ObjectUtil.isNotEmpty(memberCoinChargeEntityExist)){
+            return new FebsResponse().fail().message("提供正确的HASH值");
+        }
         MemberCoinChargeEntity memberCoinChargeEntity = new MemberCoinChargeEntity();
         memberCoinChargeEntity.setAddress(apiChargeInfoDto.getAddress());
         memberCoinChargeEntity.setMemberId(member.getId());
@@ -125,7 +132,7 @@
         memberCoinChargeEntity.setTag("ERC20");
         memberCoinChargeEntity.setStatus(1);
         memberCoinChargeEntity.setLastAmount(BigDecimal.ZERO);
-        memberCoinChargeEntity.setHash(apiChargeInfoDto.getHash());
+        memberCoinChargeEntity.setHash(hash);
         memberCoinChargeDao.insert(memberCoinChargeEntity);
         return new FebsResponse().success();
     }
diff --git a/src/main/resources/mapper/modules/MemberCoinChargeDao.xml b/src/main/resources/mapper/modules/MemberCoinChargeDao.xml
index c7ae181..23f5f8d 100644
--- a/src/main/resources/mapper/modules/MemberCoinChargeDao.xml
+++ b/src/main/resources/mapper/modules/MemberCoinChargeDao.xml
@@ -23,5 +23,10 @@
 		</if>
 	</select>
 
+	<select id="selectByHash" resultType="cc.mrbird.febs.mall.entity.MemberCoinChargeEntity">
+		select * from member_coin_charge
+		where hash = #{hash} limit 1
+	</select>
+
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1