From 499749ed62dcb9186592eec81cd78d8927876427 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 08 Jun 2023 00:12:15 +0800
Subject: [PATCH] twoCoin项目修改
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 108 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 db4820f..b48f141 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
@@ -363,6 +363,15 @@
* A币卖币规则,卖出100%销毁,30%回流底池溢价
*/
DappMemberEntity member = LoginUserUtil.getAppUser();
+
+ DataDictionaryCustom systemStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ PoolEnum.SYSTEM.getType(),
+ PoolEnum.SYSTEM.getCode()
+ );
+ String value = systemStateDic.getValue();
+ if("STOP".equals(value)){
+ throw new FebsException("Not yet open");
+ }
//提币数量
BigDecimal amount = withdrawDto.getAmount();
if(BigDecimal.ZERO.compareTo(amount) >= 0){
@@ -619,11 +628,32 @@
}
}
+ 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();
DappMemberEntity dappMemberEntity = dappMemberDao.selectById(member.getId());
+ DataDictionaryCustom systemStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ PoolEnum.SYSTEM.getType(),
+ PoolEnum.SYSTEM.getCode()
+ );
+ String value = systemStateDic.getValue();
+ if("STOP".equals(value)){
+ throw new FebsException("Not yet open");
+ }
String upgrade = redisUtils.getString("APP_UPGRADE");
if ("upgrade".equals(upgrade)) {
throw new FebsException("功能升级中");
@@ -684,12 +714,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
@@ -790,6 +848,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
@@ -1021,7 +1102,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(
@@ -1040,7 +1124,10 @@
aCoinCntReal,
FundFlowEnum.ANDAO_MEMBER_TO_MENBER.getCode(),
2,
- BigDecimal.ZERO);
+ BigDecimal.ZERO,
+ dappMemberEntity.getAddress(),
+ memberParent.getAddress(),
+ dappMemberEntity.getId());
dappFundFlowDao.insert(dappFundFlowEntity);
//金本位底池数量
@@ -1102,11 +1189,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);
//插入资产闪对的流水
@@ -1115,7 +1210,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