From 77afee148e77d429e74408ede5905b16cf803256 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 11 Aug 2023 11:09:21 +0800
Subject: [PATCH] 数据修改

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   96 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 71 insertions(+), 25 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 1f10d5c..689b667 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -37,6 +37,7 @@
 import org.web3j.utils.Strings;
 
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -208,27 +209,17 @@
             member.setCurrentUser(currentUser.getUserId());
         }
         IPage<DappMemberEntity> dappMemberEntityIPage = dappMemberDao.selectInPage(member, page);
-        List<DappMemberEntity> records = dappMemberEntityIPage.getRecords();
-        if(CollUtil.isNotEmpty(records)){
-            for(DappMemberEntity memberEntity : records){
-                Long memberId = memberEntity.getId();
-                //直推收益
-                BigDecimal directProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,3,2);
-                memberEntity.setDirectProfit(directProfit);
-                //购买节点数量
-                List<DappMemberNodeVo> dappMemberNodeVos = dappMemberNodeMapper.selectListByMemberId(memberId);
-                memberEntity.setMemberNodeCnt(CollUtil.isEmpty(dappMemberNodeVos) ? 0 : dappMemberNodeVos.size());
-
-                BigDecimal memberNodeSumPrice = BigDecimal.ZERO;
-                if(CollUtil.isNotEmpty(dappMemberNodeVos)){
-                    for(DappMemberNodeVo dappMemberNodeVo : dappMemberNodeVos){
-                        BigDecimal nodePrice = dappMemberNodeVo.getNodePrice();
-                        memberNodeSumPrice = memberNodeSumPrice.add(nodePrice);
-                    }
-                }
-                memberEntity.setMemberNodeSumPrice(memberNodeSumPrice.setScale(8,BigDecimal.ROUND_DOWN));
-            }
-        }
+//        List<DappMemberEntity> records = dappMemberEntityIPage.getRecords();
+//        if(CollUtil.isNotEmpty(records)){
+//            for(DappMemberEntity memberEntity : records){
+//                Long memberId = memberEntity.getId();
+//                DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId);
+//                memberEntity.setCoinAmount(ObjectUtil.isEmpty(dappWalletCoinEntity) ? BigDecimal.ZERO : dappWalletCoinEntity.getAvailableAmount());
+//
+//                DappWalletMineEntity dappWalletMineEntity = dappWalletMineDao.selectByMemberId(memberId);
+//                memberEntity.setScoreAmount(ObjectUtil.isEmpty(dappWalletMineEntity) ? BigDecimal.ZERO : dappWalletMineEntity.getAvailableAmount());
+//            }
+//        }
         return dappMemberEntityIPage;
     }
 
@@ -553,8 +544,7 @@
         if(ObjectUtil.isEmpty(dappMemberEntity)) {
             return new FebsResponse().fail().message("会员信息不存在");
         }
-        dappMemberEntity.setNodeType(1);
-//        dappMemberEntity.setAccountType(MemberLevelEnum.NODE_5.getType());
+        dappMemberEntity.setActiveStatus(1);
         dappMemberDao.updateById(dappMemberEntity);
         return new FebsResponse().success();
     }
@@ -565,8 +555,7 @@
         if(ObjectUtil.isEmpty(dappMemberEntity)) {
             return new FebsResponse().fail().message("会员信息不存在");
         }
-        dappMemberEntity.setNodeType(2);
-        dappMemberEntity.setAccountType(MemberLevelEnum.MEMBER.getType());
+        dappMemberEntity.setActiveStatus(1);
         dappMemberDao.updateById(dappMemberEntity);
         return new FebsResponse().success();
     }
@@ -777,6 +766,63 @@
         chainProducer.sendAutoLevelUpTeamMsg(member.getId());
     }
 
+    @Override
+    public FebsResponse packageInfo() {
+        Long memberId = LoginUserUtil.getAppUser().getId();
+        PackageInfoVo packageInfoVo = new PackageInfoVo();
+        DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
+                DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
+        );
+        BigDecimal packageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "0" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+        packageInfoVo.setPackageTotalScore(packageTotalScore);
+
+        DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
+                DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
+        );
+        BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+        packageInfoVo.setPackageScorePrice(packageScorePrice);
+
+        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+        BigDecimal balance = dappMemberEntity.getBalance();
+        packageInfoVo.setPackageMemberScore(balance);
+        return new FebsResponse().success().data(packageInfoVo);
+    }
+
+    @Override
+    public FebsResponse salePackage(SalePackageDto salePackageDto) {
+        Long memberId = LoginUserUtil.getAppUser().getId();
+        BigDecimal cnt = salePackageDto.getCnt();
+        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+        BigDecimal saleDoing = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId, FundFlowEnum.SALE_PACKAGE.getCode(), DappFundFlowEntity.WITHDRAW_STATUS_ING);
+        if(BigDecimal.ZERO.compareTo(saleDoing) < 0){
+            throw new FebsException("正在进行中,请稍后再试");
+        }
+        BigDecimal balance = dappMemberEntity.getBalance();
+        if(BigDecimal.ZERO.compareTo(cnt) >= 0){
+            throw new FebsException("资产不足");
+        }
+        if(cnt.compareTo(balance) > 0){
+            throw new FebsException("资产不足");
+        }
+        //生成一条资金流水
+        DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
+                memberId,
+                cnt,
+                FundFlowEnum.SALE_PACKAGE.getCode(),
+                DappFundFlowEntity.WITHDRAW_STATUS_ING,
+                BigDecimal.ZERO);
+        dappFundFlowDao.insert(scoreFlow);
+
+        BigDecimal subtract = balance.subtract(cnt);
+        dappMemberEntity.setBalance(subtract);
+        dappMemberDao.updateById(dappMemberEntity);
+
+        chainProducer.sendSalePackageMsg(scoreFlow.getId());
+        return new FebsResponse().success();
+    }
+
     public static List<List<String>> partitionList(List<String> originalList, int partitionSize) {
         List<List<String>> partitionedList = new ArrayList<>();
         int size = originalList.size();

--
Gitblit v1.9.1