xiaoyong931011
2023-06-05 4edd2cccf8a70bb0cd78eb55750bf0a5502f571f
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -363,6 +363,15 @@
         * A币卖币规则,卖出100%销毁,30%回流底池溢价
         */
        DappMemberEntity member = LoginUserUtil.getAppUser();
        DataDictionaryCustom systemStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PoolEnum.SYSTEM.getType(),
                PoolEnum.SYSTEM.getCode()
        );
        String value = systemStateDic.getValue();
        if("STOP".equals(value)){
            throw new FebsException("Not yet open");
        }
        //提币数量
        BigDecimal amount = withdrawDto.getAmount();
        if(BigDecimal.ZERO.compareTo(amount) >= 0){
@@ -410,7 +419,8 @@
        );
        BigDecimal outPercent = new BigDecimal(outPercentDic.getValue());
        BigDecimal realUsdtAmount = coinUsdtAmount.subtract(feeUsdtAmount).setScale(4,BigDecimal.ROUND_DOWN);
        realUsdtAmount = realUsdtAmount.multiply(outPercent).setScale(4,BigDecimal.ROUND_DOWN);
        BigDecimal realUsdtAmountFee = realUsdtAmount.multiply(outPercent).setScale(4,BigDecimal.ROUND_DOWN);
        realUsdtAmount = realUsdtAmount.subtract(realUsdtAmountFee);
        //减少闪对钱包的币的数量
        this.updateWalletCoinWithLock(amount, member.getId(), 2);
        //增加流水
@@ -623,6 +633,14 @@
        DappMemberEntity member = LoginUserUtil.getAppUser();
        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(member.getId());
        DataDictionaryCustom systemStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                PoolEnum.SYSTEM.getType(),
                PoolEnum.SYSTEM.getCode()
        );
        String value = systemStateDic.getValue();
        if("STOP".equals(value)){
            throw new FebsException("Not yet open");
        }
        String upgrade = redisUtils.getString("APP_UPGRADE");
        if ("upgrade".equals(upgrade)) {
            throw new FebsException("功能升级中");
@@ -686,9 +704,27 @@
                if(amountIn.compareTo(new BigDecimal(100)) != 0){
                    throw new FebsException("Limit per address 100 USDT");
                }
                BigDecimal amountInLast = dappChargeUsdtMapper.selectByMaxAmountMemberId(member.getId());
                if(BigDecimal.ZERO.compareTo(amountInLast) < 0){
                    throw new FebsException("Limit per address 100 USDT");
//                BigDecimal amountInLast = dappChargeUsdtMapper.selectByMaxAmountMemberId(member.getId());
                /**
                 * 限制用户买入总额,
                 *  目前每人限一单,总金额限制100U
                 */
                BigDecimal amountInLast = dappChargeUsdtMapper.selectBySumAmountMemberId(member.getId());
                DataDictionaryCustom systemAddressDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                        PoolEnum.SYSTEM_ADDRESS.getType(),
                        PoolEnum.SYSTEM_ADDRESS.getCode()
                );
                if(StrUtil.isNotEmpty(systemAddressDic.getValue())){
                    if(!systemAddressDic.getValue().contains(dappMemberEntity.getAddress())){
                        if(BigDecimal.ZERO.compareTo(amountInLast) < 0){
                            throw new FebsException("Limit per address 100 USDT");
                        }
                    }
                }else{
                    if(BigDecimal.ZERO.compareTo(amountInLast) < 0){
                        throw new FebsException("Limit per address 100 USDT");
                    }
                }
                /**
                 * 验证账户是否有入金金额的10%的AUSD