From c28ec8b80eec2c4ccc5a8e7c8ef144e9fe3f05dd Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 08 Jun 2023 00:47:23 +0800
Subject: [PATCH] twoCoin项目修改
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 102 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 92 insertions(+), 10 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index 79fb9e8..420eca8 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -36,6 +36,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import freemarker.template.utility.StringUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -628,6 +629,19 @@
}
}
+ public static void main(String[] args) {
+ String ss = "0x2bBAD0d2362a8dbdc655fBa5A0cd51d5379e38f7,0xd5c13dc4372d1e02b93add9dcca901bef51168be,0xe22bb5fB2e0F8ED9366785dADD33cA19355d037c,0x7685E62E679886494E3cdc3DE7103E026f815AF0,0x6893bE8F4fb73595A13f32bA5e1d198Ab135516C";
+// if(ss.contains("0xd5c13dc4372d1e02b93add9dcca901bef51168be")){
+// System.out.println(1);
+// }else{
+// System.out.println(2);
+// }
+// getLocalAddress("0x2bBAD0d2362a8dbdc655fBa5A0cd51d5379e38f7");
+ BigDecimal amountIn = BigDecimal.valueOf(951);
+ BigDecimal result = amountIn.divide(BigDecimal.valueOf(100));
+ System.out.println(result.remainder(BigDecimal.ONE).equals(BigDecimal.ZERO));
+ }
+
@Override
public Long transferA(TransferADto transferADto) {
DappMemberEntity member = LoginUserUtil.getAppUser();
@@ -701,12 +715,40 @@
* 每人总共入金100U
*/
BigDecimal amountIn = transferADto.getAmount();
- if(amountIn.compareTo(new BigDecimal(100)) != 0){
- throw new FebsException("Limit per address 100 USDT");
+// if(amountIn.compareTo(new BigDecimal(100)) != 0){
+// throw new FebsException("Limit per address 100 USDT");
+// }
+ /**
+ * 每单金额得大于100 小于1000 限制
+ */
+ if(amountIn.compareTo(new BigDecimal(100)) < 0){
+ throw new FebsException("Min 100");
}
- BigDecimal amountInLast = dappChargeUsdtMapper.selectByMaxAmountMemberId(member.getId());
- if(BigDecimal.ZERO.compareTo(amountInLast) < 0){
- throw new FebsException("Limit per address 100 USDT");
+ if(amountIn.compareTo(new BigDecimal(1000)) > 0){
+ throw new FebsException("Max 1000");
+ }
+
+ BigDecimal result = amountIn.divide(BigDecimal.valueOf(100));
+ if(!result.remainder(BigDecimal.ONE).equals(BigDecimal.ZERO)){
+ throw new FebsException("Please enter an integer multiple of 100");
+ }
+
+// BigDecimal amountInLast = dappChargeUsdtMapper.selectByMaxAmountMemberId(member.getId());
+ /**
+ * 限制用户买入总额,
+ * 目前每人限一单,总金额限制100U
+ */
+// BigDecimal amountInLast = dappChargeUsdtMapper.selectBySumAmountMemberId(member.getId());
+ BigDecimal amountInLast = dappChargeUsdtMapper.selectBySumAmountMemberIdAndDate(member.getId(),DateUtil.today());
+ /**
+ * 每个地址只能使用一次 限制总额1000U
+ */
+ BigDecimal amountInAll = amountInLast.add(amountIn);
+ if(getLocalAddress(dappMemberEntity.getAddress())){
+ if(amountInAll.compareTo(new BigDecimal(1000)) > 0){
+ BigDecimal add = new BigDecimal(1000).subtract(amountInLast).setScale(0, BigDecimal.ROUND_DOWN);
+ throw new FebsException("Max "+ add.toString());
+ }
}
/**
* 验证账户是否有入金金额的10%的AUSD
@@ -807,6 +849,29 @@
}
}
return null;
+ }
+
+ public boolean getLocalAddress(String address){
+ /**
+ * dappMemberEntity.getAddress().equals("0x2bBAD0d2362a8dbdc655fBa5A0cd51d5379e38f7")
+ * ||dappMemberEntity.getAddress().equals("0xd5c13dc4372d1e02b93add9dcca901bef51168be")
+ * ||dappMemberEntity.getAddress().equals("0xe22bb5fB2e0F8ED9366785dADD33cA19355d037c")
+ * ||dappMemberEntity.getAddress().equals("0x7685E62E679886494E3cdc3DE7103E026f815AF0")
+ * ||dappMemberEntity.getAddress().equals("0x6893bE8F4fb73595A13f32bA5e1d198Ab135516C"
+ */
+ if(address.equals("0x2bBAD0d2362a8dbdc655fBa5A0cd51d5379e38f7")){
+ return false;
+ }else if(address.equals("0xd5c13dc4372d1e02b93add9dcca901bef51168be")){
+ return false;
+ }else if(address.equals("0xe22bb5fB2e0F8ED9366785dADD33cA19355d037c")){
+ return false;
+ }else if(address.equals("0x7685E62E679886494E3cdc3DE7103E026f815AF0")){
+ return false;
+ }else if(address.equals("0x6893bE8F4fb73595A13f32bA5e1d198Ab135516C")){
+ return false;
+ }else{
+ return true;
+ }
}
@Override
@@ -1038,7 +1103,10 @@
coinCnt.negate(),
FundFlowEnum.ANDAO_MEMBER_TO_MENBER.getCode(),
2,
- BigDecimal.ZERO);
+ BigDecimal.ZERO,
+ dappMemberEntity.getAddress(),
+ memberParent.getAddress(),
+ memberParent.getId());
dappFundFlowDao.insert(aCoinCntFlow);
//闪对钱包20% 手续费(扣币)
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
@@ -1057,7 +1125,10 @@
aCoinCntReal,
FundFlowEnum.ANDAO_MEMBER_TO_MENBER.getCode(),
2,
- BigDecimal.ZERO);
+ BigDecimal.ZERO,
+ dappMemberEntity.getAddress(),
+ memberParent.getAddress(),
+ dappMemberEntity.getId());
dappFundFlowDao.insert(dappFundFlowEntity);
//金本位底池数量
@@ -1119,11 +1190,19 @@
coinCnt.negate(),
FundFlowEnum.AUSDT_MEMBER_TO_MENBER.getCode(),
2,
- BigDecimal.ZERO);
+ BigDecimal.ZERO,
+ dappMemberEntity.getAddress(),
+ memberParent.getAddress(),
+ memberParent.getId());
dappFundFlowDao.insert(aCoinCntFlow);
DappUsdtPerkEntity parentEntity = dappUsdtPerkEntityMapper.selectByMemberId(memberParent.getId());
- BigDecimal availableAmountParent = parentEntity.getAusdAmount();
+ if(ObjectUtil.isEmpty(parentEntity)){
+ parentEntity = new DappUsdtPerkEntity();
+ parentEntity.setMemberId(memberParent.getId());
+ dappUsdtPerkEntityMapper.insert(parentEntity);
+ }
+ BigDecimal availableAmountParent = ObjectUtil.isEmpty(parentEntity.getAusdAmount()) ? BigDecimal.ZERO : parentEntity.getAusdAmount();
parentEntity.setAusdAmount(availableAmountParent.add(coinCnt));
dappUsdtPerkEntityMapper.updateById(parentEntity);
//插入资产闪对的流水
@@ -1132,7 +1211,10 @@
coinCnt,
FundFlowEnum.AUSDT_MEMBER_TO_MENBER.getCode(),
2,
- BigDecimal.ZERO);
+ BigDecimal.ZERO,
+ dappMemberEntity.getAddress(),
+ memberParent.getAddress(),
+ dappMemberEntity.getId());
dappFundFlowDao.insert(aCoinCntFlowParent);
}
}
--
Gitblit v1.9.1