From 179867dab4554547ecc1def684989c2d6f0ef850 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 26 Aug 2022 10:46:55 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   50 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 30 insertions(+), 20 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 d3799dc..015bfa6 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
@@ -59,21 +59,15 @@
     public WalletInfoVo walletInfo() {
         DappMemberEntity member = LoginUserUtil.getAppUser();
 
-        Map<String, BigDecimal> map = dappFundFlowDao.selectAmountTotalByType(member.getId());
+        DappMemberEntity memberInfo = dappMemberDao.selectById(member.getId());
         WalletInfoVo walletInfo = new WalletInfoVo();
         List<DappMemberEntity> direct = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 1);
-        List<DappMemberEntity> notDirect = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 2);
-        BigDecimal childHoldAmount = dappMemberDao.selectChildHoldAmount(member.getInviteId());
-
         DappWalletCoinEntity walletCoin = dappWalletCoinDao.selectByMemberId(member.getId());
 
-        walletInfo.setTotalChild(notDirect.size());
         walletInfo.setDirectCnt(direct.size());
-        walletInfo.setTotalChildCoin(childHoldAmount);
-        walletInfo.setTeamReward(map.get("teamReward"));
-        walletInfo.setMiningAmount(map.get("mine"));
         walletInfo.setInviteId(member.getInviteId());
-        walletInfo.setBoxCnt(walletCoin.getBoxCnt());
+        walletInfo.setBalance(walletCoin.getAvailableAmount());
+        walletInfo.setHasBuy(memberInfo.getActiveStatus());
         return walletInfo;
     }
 
@@ -219,20 +213,36 @@
     public Long transfer(TransferDto transferDto) {
         DappMemberEntity member = LoginUserUtil.getAppUser();
 
-        if (transferDto.getId() == null) {
-            DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
-            dappFundFlowDao.insert(fundFlow);
-            return fundFlow.getId();
+        member = dappMemberDao.selectById(member.getId());
+        if (member.getActiveStatus() == 1) {
+            throw new FebsException("Do not repeat purchase");
         }
 
-        if ("success".equals(transferDto.getFlag())) {
-            DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
-            flow.setFromHash(transferDto.getTxHash());
-            dappFundFlowDao.updateById(flow);
+        if (transferDto.getBuyType() == 1) {
+            DappWalletCoinEntity walletCoin = dappWalletCoinDao.selectByMemberId(member.getId());
+            if (transferDto.getAmount().compareTo(walletCoin.getAvailableAmount()) > 0) {
+                throw new FebsException("Balance Not Enough");
+            }
+            walletCoin.setTotalAmount(walletCoin.getTotalAmount().subtract(transferDto.getAmount()));
+            walletCoin.setAvailableAmount(walletCoin.getAvailableAmount().subtract(transferDto.getAmount()));
+
+            dappWalletCoinDao.updateById(walletCoin);
         } else {
-            DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
-            if (flow.getStatus() == 1) {
-                dappFundFlowDao.deleteById(transferDto.getId());
+            if (transferDto.getId() == null) {
+                DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
+                dappFundFlowDao.insert(fundFlow);
+                return fundFlow.getId();
+            }
+
+            if ("success".equals(transferDto.getFlag())) {
+                DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
+                flow.setFromHash(transferDto.getTxHash());
+                dappFundFlowDao.updateById(flow);
+            } else {
+                DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
+                if (flow.getStatus() == 1) {
+                    dappFundFlowDao.deleteById(transferDto.getId());
+                }
             }
         }
         return null;

--
Gitblit v1.9.1