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 | 127 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 122 insertions(+), 5 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 d810441..4585a57 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/MemberMoneyFlowController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/MemberMoneyFlowController.java
@@ -1,20 +1,37 @@
package cc.mrbird.febs.dapp.controller;
+import cc.mrbird.febs.common.annotation.ControllerEndpoint;
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.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
/**
- * @author wzy
+ * @author
* @date 2022-03-22
**/
@Slf4j
@@ -25,10 +42,105 @@
public class MemberMoneyFlowController extends BaseController {
private final DappWalletService dappWalletService;
+ private final DappFundFlowDao dappFundFlowDao;
+ private final DappMemberDao dappMemberDao;
+ private final AsyncCjService asyncCjService;
+
+ @GetMapping("/dappAchieveItem")
+ public FebsResponse dappAchieveItem(QueryRequest request, DappAchieve dappAchieve, Integer parentId) {
+ if (parentId == null) {
+ ViewBannerController.zhiyaID = 0;
+ }
+ dappAchieve.setId(ViewBannerController.zhiyaID);
+ Map<String, Object> dataTable = getDataTable(dappWalletService.dappAchieveItemInPage(dappAchieve, request));
+ return new FebsResponse().success().data(dataTable);
+ }
+
+ @RequestMapping(value = "/dappAchieve")
+ public FebsResponse dappAchieve(DappAchieve dappAchieve, QueryRequest request) {
+ return new FebsResponse().success().data(getDataTable(dappWalletService.dappAchieveInPage(dappAchieve, request)));
+ }
@RequestMapping(value = "/fundFlow")
public FebsResponse fundFlow(DappFundFlowEntity dappFundFlowEntity, QueryRequest request) {
+ User currentUser = FebsUtil.getCurrentUser();
+ if (currentUser.getDeptId() == null) {
+ dappFundFlowEntity.setCurrentUser(currentUser.getUserId());
+ }
return new FebsResponse().success().data(getDataTable(dappWalletService.fundFlowInPage(dappFundFlowEntity, request)));
+ }
+
+ @GetMapping("confirmOrder")
+ @ControllerEndpoint(operation = "批量转账", exceptionMessage = "操作失败")
+ 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);
+ if(1 != dappFundFlowEntity.getStatus()){
+ continue;
+ }
+ try {
+ Thread.sleep(2000);
+ asyncCjService.confirmOrder(dappFundFlowEntity);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ return new FebsResponse().success();
+ }
+
+ @GetMapping("confirmCancel")
+ @ControllerEndpoint(operation = "取消", exceptionMessage = "操作失败")
+ public FebsResponse confirmCancel(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);
+ if(1 != dappFundFlowEntity.getStatus()){
+ continue;
+ }
+ asyncCjService.confirmCancel(dappFundFlowEntity);
+ }
+ return new FebsResponse().success();
}
@PostMapping(value = "/withdrawAgree/{id}")
@@ -42,4 +154,9 @@
dappWalletService.withdrawAgreeOrNot(id, 2);
return new FebsResponse().success();
}
+
+ @RequestMapping(value = "accountMoneyChangeFlow")
+ public FebsResponse accountMoneyChangeFlow(DappAccountMoneyChangeEntity record, QueryRequest request) {
+ return new FebsResponse().success().data(getDataTable(dappWalletService.accountMoneyChangeInPage(record, request)));
+ }
}
--
Gitblit v1.9.1