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