@@ -597,7 +597,7 @@ public class BlockBrowserController implements BlockchainExtendQueryService { | |||
public AccountHeader[] getUsers(@PathVariable(name = "ledgerHash") HashDigest ledgerHash, | |||
@RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | |||
@RequestParam(name = "count", required = false, defaultValue = "-1") int count) { | |||
return peerService.getQueryService().getUsers(ledgerHash, fromIndex, count); | |||
return revertAccountHeader(peerService.getQueryService().getUsers(ledgerHash, fromIndex, count)); | |||
} | |||
@RequestMapping(method = RequestMethod.GET, path = "ledgers/{ledgerHash}/accounts") | |||
@@ -605,7 +605,7 @@ public class BlockBrowserController implements BlockchainExtendQueryService { | |||
public AccountHeader[] getDataAccounts(@PathVariable(name = "ledgerHash") HashDigest ledgerHash, | |||
@RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | |||
@RequestParam(name = "count", required = false, defaultValue = "-1") int count) { | |||
return peerService.getQueryService().getDataAccounts(ledgerHash, fromIndex, count); | |||
return revertAccountHeader(peerService.getQueryService().getDataAccounts(ledgerHash, fromIndex, count)); | |||
} | |||
@RequestMapping(method = RequestMethod.GET, path = "ledgers/{ledgerHash}/contracts") | |||
@@ -613,6 +613,20 @@ public class BlockBrowserController implements BlockchainExtendQueryService { | |||
public AccountHeader[] getContractAccounts(@PathVariable(name = "ledgerHash") HashDigest ledgerHash, | |||
@RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | |||
@RequestParam(name = "count", required = false, defaultValue = "-1") int count) { | |||
return peerService.getQueryService().getContractAccounts(ledgerHash, fromIndex, count); | |||
return revertAccountHeader(peerService.getQueryService().getContractAccounts(ledgerHash, fromIndex, count)); | |||
} | |||
/** | |||
* reverse the AccountHeader[] content; the latest record show first; | |||
* @return | |||
*/ | |||
private AccountHeader[] revertAccountHeader(AccountHeader[] accountHeaders){ | |||
AccountHeader[] accounts = new AccountHeader[accountHeaders.length]; | |||
if(accountHeaders!=null && accountHeaders.length>0){ | |||
for (int i = 0; i < accountHeaders.length; i++) { | |||
accounts[accountHeaders.length-1-i] = accountHeaders[i]; | |||
} | |||
} | |||
return accounts; | |||
} | |||
} |
@@ -392,7 +392,7 @@ public class LedgerQueryService implements BlockchainQueryService { | |||
checkLedgerHash(ledgerHash); | |||
LedgerBlock block = ledger.getLatestBlock(); | |||
UserAccountQuery userAccountSet = ledger.getUserAccountSet(block); | |||
int pages[] = QueryUtil.calFromIndexAndCount(fromIndex, count, (int) userAccountSet.getTotal()); | |||
int pages[] = QueryUtil.calFromIndexAndCountDescend(fromIndex, count, (int) userAccountSet.getTotal()); | |||
return userAccountSet.getHeaders(pages[0], pages[1]); | |||
} | |||
@@ -401,7 +401,7 @@ public class LedgerQueryService implements BlockchainQueryService { | |||
checkLedgerHash(ledgerHash); | |||
LedgerBlock block = ledger.getLatestBlock(); | |||
DataAccountQuery dataAccountSet = ledger.getDataAccountSet(block); | |||
int pages[] = QueryUtil.calFromIndexAndCount(fromIndex, count, (int) dataAccountSet.getTotal()); | |||
int pages[] = QueryUtil.calFromIndexAndCountDescend(fromIndex, count, (int) dataAccountSet.getTotal()); | |||
return dataAccountSet.getHeaders(pages[0], pages[1]); | |||
} | |||
@@ -410,7 +410,7 @@ public class LedgerQueryService implements BlockchainQueryService { | |||
checkLedgerHash(ledgerHash); | |||
LedgerBlock block = ledger.getLatestBlock(); | |||
ContractAccountQuery contractAccountSet = ledger.getContractAccountSet(block); | |||
int pages[] = QueryUtil.calFromIndexAndCount(fromIndex, count, (int) contractAccountSet.getTotal()); | |||
int pages[] = QueryUtil.calFromIndexAndCountDescend(fromIndex, count, (int) contractAccountSet.getTotal()); | |||
return contractAccountSet.getHeaders(pages[0], pages[1]); | |||
} | |||
@@ -474,7 +474,7 @@ public class LedgerQueryController implements BlockchainQueryService { | |||
LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | |||
LedgerBlock block = ledger.getLatestBlock(); | |||
UserAccountQuery userAccountSet = ledger.getUserAccountSet(block); | |||
int pages[] = QueryUtil.calFromIndexAndCount(fromIndex, count, (int) userAccountSet.getTotal()); | |||
int pages[] = QueryUtil.calFromIndexAndCountDescend(fromIndex, count, (int) userAccountSet.getTotal()); | |||
return userAccountSet.getHeaders(pages[0], pages[1]); | |||
} | |||
@@ -494,7 +494,7 @@ public class LedgerQueryController implements BlockchainQueryService { | |||
LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | |||
LedgerBlock block = ledger.getLatestBlock(); | |||
DataAccountQuery dataAccountSet = ledger.getDataAccountSet(block); | |||
int pages[] = QueryUtil.calFromIndexAndCount(fromIndex, count, (int) dataAccountSet.getTotal()); | |||
int pages[] = QueryUtil.calFromIndexAndCountDescend(fromIndex, count, (int) dataAccountSet.getTotal()); | |||
return dataAccountSet.getHeaders(pages[0], pages[1]); | |||
} | |||
@@ -506,7 +506,7 @@ public class LedgerQueryController implements BlockchainQueryService { | |||
LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | |||
LedgerBlock block = ledger.getLatestBlock(); | |||
ContractAccountQuery contractAccountSet = ledger.getContractAccountSet(block); | |||
int pages[] = QueryUtil.calFromIndexAndCount(fromIndex, count, (int) contractAccountSet.getTotal()); | |||
int pages[] = QueryUtil.calFromIndexAndCountDescend(fromIndex, count, (int) contractAccountSet.getTotal()); | |||
return contractAccountSet.getHeaders(pages[0], pages[1]); | |||
} | |||
@@ -47,4 +47,21 @@ public class QueryUtil { | |||
rtn[1] = count; | |||
return rtn; | |||
} | |||
/** | |||
* cal the data by descend; | |||
* @param fromIndex | |||
* @param count | |||
* @param maxNum | |||
* @return | |||
*/ | |||
public static int[] calFromIndexAndCountDescend(int fromIndex, int count, int maxNum){ | |||
int rtn[] = new int[2]; | |||
int results[] = calFromIndexAndCount(fromIndex,count,maxNum); | |||
//now use descend; first show the latest record; | |||
rtn[0] = maxNum - results[0] - results[1]; | |||
rtn[1] = results[1]; | |||
return rtn; | |||
} | |||
} |