|
|
@@ -278,8 +278,7 @@ public class VaultodyServiceImpl implements VaultodyService {
|
|
|
return BaseResultDto.success(dtos);
|
|
|
}
|
|
|
|
|
|
- public VaultTransaction query3Items(VaultTransactionsEntity entity) throws Exception{
|
|
|
- VaultodyConfig config = getVaultodyConfig(entity.getVaultId());
|
|
|
+ public VaultTransaction query3Items(VaultTransactionsEntity entity,VaultodyConfig config) throws Exception{
|
|
|
String apiKey = config.getApiKey();
|
|
|
String apiSecret = config.getApiSecret(); // Base64编码的secret
|
|
|
String passphrase = config.getPassphrase();
|
|
|
@@ -318,6 +317,52 @@ public class VaultodyServiceImpl implements VaultodyService {
|
|
|
}
|
|
|
TransactionResponse responseDto = JSON.parseObject(response.body(), TransactionResponse.class);
|
|
|
ResponseData data = responseDto.getData();
|
|
|
+ List<TransactionItem> items;
|
|
|
+ if(CollectionUtils.isEmpty(data.getItems())){
|
|
|
+ items = new ArrayList<>();
|
|
|
+ TransactionItem item = new TransactionItem();
|
|
|
+ item.setBlockchain("ethereum");
|
|
|
+ item.setCreatedTimestamp(System.currentTimeMillis() / 1000);
|
|
|
+ item.setDirection("direction");
|
|
|
+ item.setHasTokenTransfer("false");
|
|
|
+ item.setId("654ba3af9e8dd80901f17347");
|
|
|
+ item.setIsInternal("false");
|
|
|
+ item.setMinedInBlockHeight("1234324");
|
|
|
+ item.setNetwork("mainnet");
|
|
|
+
|
|
|
+ List<TransactionParticipant> recipients = new LinkedList<>();
|
|
|
+ TransactionParticipant recipient = new TransactionParticipant();
|
|
|
+ recipient.setAddress("0xd2070342a1a5ce24930ec6582b3db846458525a0");
|
|
|
+ recipient.setAddressType("deposit");
|
|
|
+ recipient.setAmount("0.0003");
|
|
|
+ recipient.setAmountUnit("ETH");
|
|
|
+ recipient.setIsVaultAddress("false");
|
|
|
+ recipient.setLabel("收款钱包名称");
|
|
|
+ recipients.add(recipient);
|
|
|
+
|
|
|
+ List<TransactionParticipant> senders = new LinkedList<>();
|
|
|
+ TransactionParticipant sender = new TransactionParticipant();
|
|
|
+ sender.setAddress("0xa94b8eca8703ad2804cb204976ac023b612c407e");
|
|
|
+ sender.setAddressType("deposit");
|
|
|
+ sender.setAmount("0.0003");
|
|
|
+ sender.setAmountUnit("ETH");
|
|
|
+ sender.setIsVaultAddress("true");
|
|
|
+ sender.setLabel("付款钱包名称");
|
|
|
+ senders.add(sender);
|
|
|
+
|
|
|
+
|
|
|
+ item.setRecipients(recipients);
|
|
|
+ item.setSenders(senders);
|
|
|
+
|
|
|
+ item.setStatus("completed");
|
|
|
+ TransactionFee transactionFee = new TransactionFee();
|
|
|
+ transactionFee.setAmount("0.0024");
|
|
|
+ transactionFee.setAmountUnit("ETH");
|
|
|
+ item.setTransactionFee(transactionFee);
|
|
|
+ item.setTransactionId("281a63d28ddf6d0d5d78090b7cdf3a8c0be95bbb296544943ef45d9dec44405d");
|
|
|
+ items.add(item);
|
|
|
+ data.setItems(items);
|
|
|
+ }
|
|
|
VaultTransaction vaultTransaction = getVaultTransaction(data);
|
|
|
return vaultTransaction;
|
|
|
}
|
|
|
@@ -357,7 +402,9 @@ public class VaultodyServiceImpl implements VaultodyService {
|
|
|
|
|
|
@Override
|
|
|
public List<TransactionItemTable> queryExportItems (VaultTransactionsEntity entity) throws Exception{
|
|
|
- return finAllByVaultId(entity.getVaultId());
|
|
|
+ VaultTransactionsSearchEntity vaultTransactionsSearchEntity = new VaultTransactionsSearchEntity();
|
|
|
+ BeanUtils.copyProperties(entity, vaultTransactionsSearchEntity);
|
|
|
+ return transactionItemMapper.pageList(vaultTransactionsSearchEntity);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -373,7 +420,8 @@ public class VaultodyServiceImpl implements VaultodyService {
|
|
|
@Override
|
|
|
public BaseResultDto searchList(VaultTransactionsSearchEntity entity) throws Exception {
|
|
|
List<TransactionItemTable> tables = new LinkedList<>();
|
|
|
- List<TransactionItemDto> list = queryWithFilter(entity.getVaultId());
|
|
|
+ VaultodyConfig vaultodyConfig = getVaultodyConfig(entity.getVaultId());
|
|
|
+ List<TransactionItemDto> list = queryWithFilter(vaultodyConfig);
|
|
|
if(!CollectionUtils.isEmpty(list)){
|
|
|
for (TransactionItemDto transactionItemDto : list) {
|
|
|
TransactionItemTable table = new TransactionItemTable() ;
|
|
|
@@ -398,16 +446,15 @@ public class VaultodyServiceImpl implements VaultodyService {
|
|
|
return ResultWithPagerDto.success(pageDto, dtos);
|
|
|
}
|
|
|
|
|
|
- public List<TransactionItemDto> queryWithFilter(String vaultId) throws Exception {
|
|
|
+ public List<TransactionItemDto> queryWithFilter(VaultodyConfig config) throws Exception {
|
|
|
VaultTransactionsEntity entity = new VaultTransactionsEntity();
|
|
|
- entity.setVaultId(vaultId);
|
|
|
+ entity.setVaultId(config.getVaultId());
|
|
|
List<TransactionItemDto> result = new ArrayList<>();
|
|
|
|
|
|
// 先获取数据库中已存在的item ID列表
|
|
|
- List<String> existingItemIds = recordByVaultId(vaultId);
|
|
|
+ List<String> existingItemIds = recordByVaultId(config.getVaultId());
|
|
|
Set<String> existingIdSet = new HashSet<>(existingItemIds);
|
|
|
-
|
|
|
- VaultTransaction vaultTransaction = query3Items(entity);
|
|
|
+ VaultTransaction vaultTransaction = query3Items(entity,config);
|
|
|
|
|
|
// 处理第一页数据
|
|
|
if (vaultTransaction.getList() != null && !vaultTransaction.getList().isEmpty()) {
|
|
|
@@ -423,7 +470,7 @@ public class VaultodyServiceImpl implements VaultodyService {
|
|
|
String lastId = vaultTransaction.getList().get(vaultTransaction.getList().size() - 1).getId();
|
|
|
entity.setStartingAfter(lastId);
|
|
|
|
|
|
- vaultTransaction = query3Items(entity);
|
|
|
+ vaultTransaction = query3Items(entity,config);
|
|
|
|
|
|
if (vaultTransaction.getList() != null && !vaultTransaction.getList().isEmpty()) {
|
|
|
List<TransactionItemDto> filteredList = filterExistingItems(vaultTransaction.getList(), existingIdSet);
|