src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java
@@ -115,8 +115,8 @@ //发送转币消息 chainProducer.sendBnbTransferMsg(dappFundFlowEntity.getId()); DappMemberEntity dappMember = dappMemberDao.selectById(dappFundFlowEntity.getMemberId()); trans(new BigInteger(dappFundFlowEntity.getAmount().toString()),dappMember.getAddress()); // DappMemberEntity dappMember = dappMemberDao.selectById(dappFundFlowEntity.getMemberId()); // trans(new BigInteger(dappFundFlowEntity.getAmount().toString()),dappMember.getAddress()); } } } @@ -128,13 +128,16 @@ /** * 从合约内转币到制定地址 */ public void trans(BigInteger amount, String to1){ public String trans(BigInteger amount, String to1){ String transactionHash = null; Credentials credentials = Credentials.create(privateKey); Abi contract = Abi.load(contractAddr, getInstance(), credentials, getStaticGasProvider()); try { TransactionReceipt send = contract.trans(amount, to1).send(); transactionHash = send.getTransactionHash(); } catch (Exception exception) { exception.printStackTrace(); } return transactionHash; } } src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -6,6 +6,7 @@ import cc.mrbird.febs.common.utils.SpringContextUtil; import cc.mrbird.febs.dapp.chain.ChainEnum; import cc.mrbird.febs.dapp.chain.ChainService; import cc.mrbird.febs.dapp.contract.ContractMain; import cc.mrbird.febs.dapp.dto.SystemDto; import cc.mrbird.febs.dapp.dto.TransferDto; import cc.mrbird.febs.dapp.entity.*; @@ -30,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; import java.util.*; @@ -53,6 +55,7 @@ private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final DappSystemProfitDao dappSystemProfitDao; private final ChainProducer chainProducer; private final ContractMain contractMain; @Override @@ -562,7 +565,7 @@ } String address = dappMemberEntity.getAddress(); log.info("{}",address); String hash = ChainService.getInstance(ChainEnum.BNB.name()).transferBaseToken(address, amount); String hash = contractMain.trans(new BigInteger(amount.toString()),address); if(StrUtil.isEmpty(hash)){ return; } src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
@@ -21,12 +21,12 @@ @Autowired private ChainProducer chainProducer; // @Scheduled(cron = "0/5 * * * * ? ") // public void BnbTransferAgain() { // DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashLimitOne(2,2); // if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){ // chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId()); // } // } @Scheduled(cron = "0/5 * * * * ? ") public void BnbTransferAgain() { DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashLimitOne(2,2); if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){ chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId()); } } }