| | |
| | | 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; |
| | |
| | | * 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(), |
| | |
| | | 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); |
| | | //减少余额 |
| | |
| | | |
| | | 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(), |
| | |
| | | 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); |
| | |
| | | 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; |
| | | } |
| | | } |