From 0537e73efb9aba020fdc8cb48708bb51b46aaf57 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 15 Sep 2023 14:33:39 +0800
Subject: [PATCH] 后台修改

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |  119 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 86 insertions(+), 33 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 c7aaa98..10c107c 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
@@ -1,44 +1,28 @@
 package cc.mrbird.febs.dapp.service.impl;
 
-import cc.mrbird.febs.common.configure.i18n.MessageSourceUtils;
 import cc.mrbird.febs.common.contants.AppContants;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.exception.FebsException;
-import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.RedisUtils;
-import cc.mrbird.febs.dapp.chain.ChainEnum;
-import cc.mrbird.febs.dapp.chain.ChainService;
-import cc.mrbird.febs.dapp.chain.ContractChainService;
 import cc.mrbird.febs.dapp.dto.*;
 import cc.mrbird.febs.dapp.entity.*;
 import cc.mrbird.febs.dapp.enumerate.*;
 import cc.mrbird.febs.dapp.mapper.*;
 import cc.mrbird.febs.dapp.service.DappWalletService;
-import cc.mrbird.febs.dapp.utils.BoxUtil;
 import cc.mrbird.febs.dapp.vo.*;
-import cc.mrbird.febs.rabbit.producer.ChainProducer;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateField;
-import cn.hutool.core.date.DateUnit;
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import freemarker.template.utility.StringUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.*;
 
 /**
@@ -57,17 +41,10 @@
     private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
     private final RedisUtils redisUtils;
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
-    private final DappNftActivationDao dappNftActivationDao;
     private final MemberCoinWithdrawDao memberCoinWithdrawDao;
 
-    private final ChainProducer chainProducer;
-    private final DappSystemDao dappSystemDao;
-    private final DappSystemProfitDao dappSystemProfitDao;
-
-    private final DappNodeOrderMapper dappNodeOrderMapper;
-    private final DappMemberNodeMapper dappMemberNodeMapper;
     private final DappChargeUsdtMapper dappChargeUsdtMapper;
-    private final DappUsdtPerkEntityMapper dappUsdtPerkEntityMapper;
+    private final DappAKlineMapper dappAKlineMapper;
 
     @Override
     public List<DappFundFlowEntity> recordInPage(RecordInPageDto recordInPageDto) {
@@ -118,6 +95,10 @@
          * A币卖币规则,卖出100%销毁,30%回流底池溢价
          */
         DappMemberEntity member = LoginUserUtil.getAppUser();
+        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(member.getId());
+        if(2 == dappMemberEntity.getChangeAble()){
+            throw new FebsException("账号已冻结");
+        }
 
         DataDictionaryCustom systemStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                 PoolEnum.SYSTEM.getType(),
@@ -141,25 +122,49 @@
                 DataDictionaryEnum.WITHDRAW_FEE.getCode()
         );
         BigDecimal withdrawFee = new BigDecimal(withdrawFeeDic.getValue());
+        //最小提现金额
+        DataDictionaryCustom minWithdrawDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MIN_WITHDRAW_AMOUNT.getType(),
+                DataDictionaryEnum.MIN_WITHDRAW_AMOUNT.getCode()
+        );
+        BigDecimal minWithdraw = new BigDecimal(minWithdrawDic.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+        if (minWithdraw.compareTo(withdrawDto.getAmount()) > 0) {
+            throw new FebsException("最小提现金额为"+minWithdraw);
+        }
+        //今日最大提现金额
+        DataDictionaryCustom maxWithdrawDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MAX_WITHDRAW_AMOUNT.getType(),
+                DataDictionaryEnum.MAX_WITHDRAW_AMOUNT.getCode()
+        );
+        BigDecimal maxWithdraw = new BigDecimal(maxWithdrawDic.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+        BigDecimal withdrawToday = dappFundFlowDao.selectSumAmountByMemberIdAndType(member.getId(), FundFlowEnum.WITHDRAW_USDT.getCode());
+        withdrawToday = withdrawToday.add(withdrawDto.getAmount());
+        if (maxWithdraw.compareTo(withdrawToday) < 0) {
+            throw new FebsException("今日提现最多可申请"+maxWithdraw);
+        }
         //手续费
         BigDecimal feeAmount = amount.multiply(withdrawFee);
         //减少余额
         this.updateWalletCoinWithLock(amount, member.getId(), 2);
+
+        BigDecimal withdrawAmount = amount.divide(new BigDecimal(7),2,BigDecimal.ROUND_DOWN);
+        BigDecimal withdrawAmountFee = feeAmount.divide(new BigDecimal(7),2,BigDecimal.ROUND_DOWN);
+
         //增加流水
         DappFundFlowEntity dappFundFlowEntity = new DappFundFlowEntity(
                 AccountFlowEnum.AMOUNT.getCode(),
                 member.getId(),
-                amount.negate(),
+                withdrawAmount.negate(),
                 FundFlowEnum.WITHDRAW_USDT.getCode(),
                 DappFundFlowEntity.WITHDRAW_STATUS_ING,
-                feeAmount);
+                withdrawAmountFee);
         dappFundFlowDao.insert(dappFundFlowEntity);
         //增加提现的记录
         MemberCoinWithdrawEntity memberCoinWithdraw = new MemberCoinWithdrawEntity();
         memberCoinWithdraw.setMemberId(member.getId());
         memberCoinWithdraw.setAddress(member.getAddress());
-        memberCoinWithdraw.setAmount(amount.subtract(feeAmount));
-        memberCoinWithdraw.setFeeAmount(feeAmount);
+        memberCoinWithdraw.setAmount(withdrawAmount.subtract(withdrawAmountFee));
+        memberCoinWithdraw.setFeeAmount(withdrawAmountFee);
         memberCoinWithdraw.setStatus(MemberCoinWithdrawEntity.STATUS_DOING);
         memberCoinWithdraw.setSymbol("USDT");
         memberCoinWithdraw.setFlowId(dappFundFlowEntity.getId());
@@ -471,7 +476,7 @@
             //生成一条进行中的入金资金流水记录
             DappFundFlowEntity fundFlow = new DappFundFlowEntity(
                     dappMemberEntity.getId(),
-                    transferAusdDto.getAmount(),
+                    transferAusdDto.getAmount().multiply(new BigDecimal(7)),
                     type,
                     1,
                     transferAusdDto.getFee(),
@@ -496,7 +501,7 @@
             /**
              * 增加用户的余额
              */
-            dappWalletCoinDao.addTotalAndaddAvailableByMemberId(member.getId(),amount);
+            dappWalletCoinDao.addTotalAndaddAvailableByMemberId(member.getId(),amount.multiply(new BigDecimal(7)));
 
             DappChargeUsdtEntity dappChargeUsdtEntity = new DappChargeUsdtEntity();
             dappChargeUsdtEntity.setMemberId(member.getId());
@@ -504,7 +509,7 @@
             dappChargeUsdtEntity.setMemberHash(transferAusdDto.getTxHash());
             dappChargeUsdtEntity.setStatus(2);
             dappChargeUsdtEntity.setTotalCnt(amount);
-            dappChargeUsdtEntity.setRealCnt(amount);
+            dappChargeUsdtEntity.setRealCnt(amount.multiply(new BigDecimal(7)));
             dappChargeUsdtMapper.insert(dappChargeUsdtEntity);
         } else {
             if (flow.getStatus() == 1) {
@@ -723,7 +728,7 @@
          */
         BigDecimal withdrawFee = dappFundFlowEntity.getFee();
         if(BigDecimal.ZERO.compareTo(withdrawFee) < 0){
-            BigDecimal addPoor = withdrawFee;
+            BigDecimal addPoor = withdrawFee.multiply(new BigDecimal(7));
 
             DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                     DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
@@ -747,6 +752,23 @@
             BigDecimal divide = avaPackagePoor.divide(packageTotalScore, 8, BigDecimal.ROUND_DOWN);
             packageScorePriceDic.setValue(divide.toString());
             dataDictionaryCustomMapper.updateById(packageScorePriceDic);
+
+
+            DappFundFlowEntity packageFlow = new DappFundFlowEntity(
+                    AccountFlowEnum.SYSTEM_PACKAGE.getCode(),
+                    1L,
+                    addPoor,
+                    FundFlowEnum.SYSTEM_WITHDRAW_PACKAGE.getCode(),
+                    2,
+                    BigDecimal.ZERO,
+                    null,
+                    memberCoinWithdrawEntity.getId());
+            dappFundFlowDao.insert(packageFlow);
+
+            DappAKlineEntity dappAKlineEntity = new DappAKlineEntity();
+            dappAKlineEntity.setOpenPrice(divide);
+            dappAKlineEntity.setType(1);
+            dappAKlineMapper.insert(dappAKlineEntity);
         }
         return new FebsResponse().success();
     }
@@ -774,12 +796,22 @@
         }
         dappFundFlowEntity.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_DISAGREE);
         dappFundFlowDao.updateById(dappFundFlowEntity);
+        DappFundFlowEntity dappFundFlowEntityIn = new DappFundFlowEntity(
+                AccountFlowEnum.AMOUNT.getCode(),
+                dappFundFlowEntity.getMemberId(),
+                dappFundFlowEntity.getAmount().negate(),
+                FundFlowEnum.WITHDRAW_USDT_NO.getCode(),
+                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+                BigDecimal.ZERO);
+        dappFundFlowDao.insert(dappFundFlowEntityIn);
+
 
         memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_NO);
         memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_NO);
         memberCoinWithdrawDao.updateById(memberCoinWithdrawEntity);
         //增加余额
-        this.updateWalletCoinWithLock(dappFundFlowEntity.getAmount().negate(), dappMemberEntity.getId(), 1);
+        BigDecimal negate = dappFundFlowEntity.getAmount().negate().multiply(new BigDecimal(7));
+        this.updateWalletCoinWithLock(negate, dappMemberEntity.getId(), 1);
         return new FebsResponse().success();
     }
 
@@ -800,4 +832,25 @@
         DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = dappAccountMoneyChangeDao.selectNewOneByMemberId(memberId);
         return new FebsResponse().success().data(dappAccountMoneyChangeEntity);
     }
+
+    @Override
+    public CashOutSettingVo cashOutSetting() {
+        CashOutSettingVo cashOutSettingVo = new CashOutSettingVo();
+        //最小提现金额
+        DataDictionaryCustom minWithdrawDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MIN_WITHDRAW_AMOUNT.getType(),
+                DataDictionaryEnum.MIN_WITHDRAW_AMOUNT.getCode()
+        );
+        BigDecimal minWithdraw = new BigDecimal(minWithdrawDic.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+
+        cashOutSettingVo.setMinWithdraw(minWithdraw);
+        //今日最大提现金额
+        DataDictionaryCustom maxWithdrawDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MAX_WITHDRAW_AMOUNT.getType(),
+                DataDictionaryEnum.MAX_WITHDRAW_AMOUNT.getCode()
+        );
+        BigDecimal maxWithdraw = new BigDecimal(maxWithdrawDic.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+        cashOutSettingVo.setMaxWithdraw(maxWithdraw);
+        return cashOutSettingVo;
+    }
 }

--
Gitblit v1.9.1