xiaoyong931011
2023-09-14 eeccae86c34ed71a3ebb3d59900def3f2c1f6fe5
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -14,6 +14,7 @@
import cc.mrbird.febs.dapp.vo.*;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
@@ -94,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(),
@@ -117,6 +122,26 @@
                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);
        //减少余额
@@ -124,6 +149,7 @@
        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(),
@@ -727,6 +753,18 @@
            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);
@@ -758,6 +796,15 @@
        }
        dappFundFlowEntity.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_DISAGREE);
        dappFundFlowDao.updateById(dappFundFlowEntity);
        DappFundFlowEntity dappFundFlowEntityIn = new DappFundFlowEntity(
                AccountFlowEnum.AMOUNT.getCode(),
                dappFundFlowEntity.getMemberId(),
                dappFundFlowEntity.getAmount().negate(),
                FundFlowEnum.WITHDRAW_USDT.getCode(),
                DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
                BigDecimal.ZERO);
        dappFundFlowDao.insert(dappFundFlowEntityIn);
        memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_NO);
        memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_NO);
@@ -785,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;
    }
}