From 8f720d592d6ea2229cac4c051828af39f8425325 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 03 Jun 2024 11:45:00 +0800
Subject: [PATCH] 批量转账
---
src/main/java/cc/mrbird/febs/dapp/controller/MemberMoneyFlowController.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/MemberMoneyFlowController.java b/src/main/java/cc/mrbird/febs/dapp/controller/MemberMoneyFlowController.java
index 79c3d20..4585a57 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/MemberMoneyFlowController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/MemberMoneyFlowController.java
@@ -4,21 +4,29 @@
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.utils.FebsUtil;
+import cc.mrbird.febs.dapp.chain.ChainEnum;
+import cc.mrbird.febs.dapp.chain.ChainService;
+import cc.mrbird.febs.dapp.dto.BatchTransferDto;
import cc.mrbird.febs.dapp.entity.DappAccountMoneyChangeEntity;
import cc.mrbird.febs.dapp.entity.DappAchieve;
import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
+import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
+import cc.mrbird.febs.dapp.mapper.DappMemberDao;
import cc.mrbird.febs.dapp.service.AsyncCjService;
import cc.mrbird.febs.dapp.service.DappWalletService;
import cc.mrbird.febs.system.entity.User;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -35,6 +43,7 @@
private final DappWalletService dappWalletService;
private final DappFundFlowDao dappFundFlowDao;
+ private final DappMemberDao dappMemberDao;
private final AsyncCjService asyncCjService;
@GetMapping("/dappAchieveItem")
@@ -66,6 +75,42 @@
public FebsResponse confirmOrder(DappFundFlowEntity dappFundFlowIn){
String orderIds = dappFundFlowIn.getOrderIds();
List<String> ids = StrUtil.splitTrim(orderIds, ",");
+ Integer type = 0;
+ List<BatchTransferDto> batchTransferDtos = new ArrayList<>();
+ for(String id : ids){
+ long orderId = Long.parseLong(id);
+ DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectById(orderId);
+ if(1 != dappFundFlowEntity.getStatus()){
+ continue;
+ }
+ BigDecimal amount = dappFundFlowEntity.getAmount().negate();
+ if(BigDecimal.ZERO.compareTo(amount) >=0){
+ amount = amount.negate();
+ }
+ Long memberId = dappFundFlowEntity.getMemberId();
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+ batchTransferDtos.add(new BatchTransferDto(dappMemberEntity.getAddress(), amount));
+
+ dappFundFlowEntity.setStatus(2);
+ dappFundFlowDao.updateById(dappFundFlowEntity);
+
+ type = dappFundFlowEntity.getType();
+ }
+ if(CollUtil.isNotEmpty(batchTransferDtos)){
+ if(FlowTypeEnum.USDT_OUT.getValue() == type){
+ ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferList(batchTransferDtos);
+ }else if(FlowTypeEnum.DAI_BI_OUT.getValue() == type){
+ ChainService.getInstance(ChainEnum.BSC_GFA.name()).transferList(batchTransferDtos);
+ }
+ }
+ return new FebsResponse().success();
+ }
+
+ @GetMapping("confirmOrderV2")
+ @ControllerEndpoint(operation = "批量转账", exceptionMessage = "操作失败")
+ public FebsResponse confirmOrderV2(DappFundFlowEntity dappFundFlowIn){
+ String orderIds = dappFundFlowIn.getOrderIds();
+ List<String> ids = StrUtil.splitTrim(orderIds, ",");
for(String id : ids){
long orderId = Long.parseLong(id);
DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectById(orderId);
@@ -74,7 +119,7 @@
}
try {
Thread.sleep(2000);
-// asyncCjService.confirmOrder(dappFundFlowEntity);
+ asyncCjService.confirmOrder(dappFundFlowEntity);
} catch (InterruptedException e) {
e.printStackTrace();
}
--
Gitblit v1.9.1