| | |
| | | * A币卖币规则,卖出100%销毁,30%回流底池溢价 |
| | | */ |
| | | DappMemberEntity member = LoginUserUtil.getAppUser(); |
| | | DappMemberEntity dappMemberEntity = dappMemberDao.selectById(member.getId()); |
| | | Integer activeStatus = dappMemberEntity.getActiveStatus(); |
| | | if(1 != activeStatus){ |
| | | throw new FebsException("Not yet open"); |
| | | } |
| | | |
| | | DataDictionaryCustom systemStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | PoolEnum.SYSTEM.getType(), |
| | |
| | | /** |
| | | * A币卖币规则,卖出100%销毁,30%回流底池溢价 |
| | | */ |
| | | BigDecimal coinUsdtAmountFee = coinUsdtAmount.multiply(new BigDecimal(0.2)).setScale(4,BigDecimal.ROUND_DOWN); |
| | | BigDecimal coinUsdtAmountFee = coinUsdtAmount.multiply(new BigDecimal(0.05)).setScale(4,BigDecimal.ROUND_DOWN); |
| | | // coinUsdtAmount = coinUsdtAmount.multiply(outPercent).setScale(4,BigDecimal.ROUND_DOWN); |
| | | //金本位底池数量 |
| | | DataDictionaryCustom coinAUsdtPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | |
| | | PoolEnum.COIN_A_USDT_PRICE.getCode() |
| | | ); |
| | | BigDecimal coinAUsdtCnt = new BigDecimal(coinAUsdtPriceDic.getValue()); |
| | | coinAUsdtCnt = coinAUsdtCnt.subtract(coinUsdtAmount).add(coinUsdtAmountFee).setScale(4,BigDecimal.ROUND_DOWN); |
| | | coinAUsdtCnt = coinAUsdtCnt.subtract(coinUsdtAmount).setScale(4,BigDecimal.ROUND_DOWN); |
| | | // coinAUsdtCnt = coinAUsdtCnt.subtract(coinUsdtAmount).add(coinUsdtAmountFee).setScale(4,BigDecimal.ROUND_DOWN); |
| | | coinAUsdtPriceDic.setValue(coinAUsdtCnt.toString()); |
| | | dataDictionaryCustomMapper.updateById(coinAUsdtPriceDic); |
| | | //币本位底池数量 |
| | |
| | | 1, |
| | | ausdAmountNeed, |
| | | transferADto.getTxHash()); |
| | | |
| | | |
| | | // DappFundFlowEntity fundFlow = new DappFundFlowEntity( |
| | | // member.getId(), |
| | | // transferADto.getAmount(), |
| | | // type, |
| | | // 1, |
| | | // new BigDecimal("1"), |
| | | // transferADto.getTxHash()); |
| | | dappFundFlowDao.insert(fundFlow); |
| | | return fundFlow.getId(); |
| | | } |
| | |
| | | if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE == flow.getStatus()){ |
| | | throw new FebsException("请勿重复提交"); |
| | | } |
| | | /** |
| | | * 生成会员入金买A币的记录 |
| | | */ |
| | | DappChargeUsdtEntity dappChargeUsdtEntity = new DappChargeUsdtEntity( |
| | | member.getId(), |
| | | dappMemberEntity.getAddress(), |
| | | transferADto.getTxHash(), |
| | | 2, |
| | | transferADto.getAmount(), |
| | | BigDecimal.ZERO, |
| | | BigDecimal.ZERO); |
| | | dappChargeUsdtMapper.insert(dappChargeUsdtEntity); |
| | | /** |
| | | * 减少用户的AUSD数量 |
| | | */ |
| | | DappUsdtPerkEntity dappUsdtPerkEntity = dappUsdtPerkEntityMapper.selectByMemberId(member.getId()); |
| | | BigDecimal ausdAmount = dappUsdtPerkEntity.getAusdAmount(); |
| | | ausdAmount = ausdAmount.subtract(flow.getFee()).setScale(4,BigDecimal.ROUND_DOWN); |
| | | dappUsdtPerkEntity.setAusdAmount(ausdAmount); |
| | | dappUsdtPerkEntityMapper.updateById(dappUsdtPerkEntity); |
| | | /** |
| | | * 流水关联用户购买记录 |
| | | */ |
| | | flow.setSystemProfitId(dappChargeUsdtEntity.getId()); |
| | | |
| | | /** |
| | | * 链上转账的hash值 |
| | | */ |
| | | flow.setFromHash(transferADto.getTxHash()); |
| | | flow.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_AGREE); |
| | | dappFundFlowDao.updateById(flow); |
| | | /** |
| | | * 发送消息处理返利逻辑 |
| | | */ |
| | | chainProducer.sendAntACoinInMsg(flow.getId()); |
| | | /** |
| | | * 发送消息处理代理升级 |
| | | */ |
| | | chainProducer.sendAntMemberLevelMsg(member.getId()); |
| | | chainProducer.sendContractAnDao(flow.getId()); |
| | | |
| | | // /** |
| | | // * 生成会员入金买A币的记录 |
| | | // */ |
| | | // DappChargeUsdtEntity dappChargeUsdtEntity = new DappChargeUsdtEntity( |
| | | // member.getId(), |
| | | // dappMemberEntity.getAddress(), |
| | | // transferADto.getTxHash(), |
| | | // 2, |
| | | // transferADto.getAmount(), |
| | | // BigDecimal.ZERO, |
| | | // BigDecimal.ZERO); |
| | | // dappChargeUsdtMapper.insert(dappChargeUsdtEntity); |
| | | // /** |
| | | // * 减少用户的AUSD数量 |
| | | // */ |
| | | // DappUsdtPerkEntity dappUsdtPerkEntity = dappUsdtPerkEntityMapper.selectByMemberId(member.getId()); |
| | | // BigDecimal ausdAmount = dappUsdtPerkEntity.getAusdAmount(); |
| | | // ausdAmount = ausdAmount.subtract(flow.getFee()).setScale(4,BigDecimal.ROUND_DOWN); |
| | | // dappUsdtPerkEntity.setAusdAmount(ausdAmount); |
| | | // dappUsdtPerkEntityMapper.updateById(dappUsdtPerkEntity); |
| | | // /** |
| | | // * 流水关联用户购买记录 |
| | | // */ |
| | | // flow.setSystemProfitId(dappChargeUsdtEntity.getId()); |
| | | // /** |
| | | // * 链上转账的hash值 |
| | | // */ |
| | | // flow.setFromHash(transferADto.getTxHash()); |
| | | // flow.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_AGREE); |
| | | // dappFundFlowDao.updateById(flow); |
| | | // /** |
| | | // * 发送消息处理返利逻辑 |
| | | // */ |
| | | // chainProducer.sendAntACoinInMsg(flow.getId()); |
| | | // /** |
| | | // * 发送消息处理代理升级 |
| | | // */ |
| | | // chainProducer.sendAntMemberLevelMsg(member.getId()); |
| | | } else { |
| | | DappFundFlowEntity flow = dappFundFlowDao.selectById(transferADto.getId()); |
| | | if (flow.getStatus() == 1) { |
| | |
| | | if(ObjectUtil.isEmpty(memberParent)){ |
| | | throw new FebsException("请输入正确的地址"); |
| | | } |
| | | if(member.getAddress().equals(memberParent.getAddress())){ |
| | | throw new FebsException("请输入正确的地址"); |
| | | } |
| | | |
| | | BigDecimal coinCnt = roundCoinDto.getCoinCnt(); |
| | | if(BigDecimal.ZERO.compareTo(coinCnt) >= 0){ |