@@ -597,7 +597,7 @@ public class BlockBrowserController implements BlockchainExtendQueryService { | |||||
public AccountHeader[] getUsers(@PathVariable(name = "ledgerHash") HashDigest ledgerHash, | public AccountHeader[] getUsers(@PathVariable(name = "ledgerHash") HashDigest ledgerHash, | ||||
@RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | @RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | ||||
@RequestParam(name = "count", required = false, defaultValue = "-1") int count) { | @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") | @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, | public AccountHeader[] getDataAccounts(@PathVariable(name = "ledgerHash") HashDigest ledgerHash, | ||||
@RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | @RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | ||||
@RequestParam(name = "count", required = false, defaultValue = "-1") int count) { | @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") | @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, | public AccountHeader[] getContractAccounts(@PathVariable(name = "ledgerHash") HashDigest ledgerHash, | ||||
@RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | @RequestParam(name = "fromIndex", required = false, defaultValue = "0") int fromIndex, | ||||
@RequestParam(name = "count", required = false, defaultValue = "-1") int count) { | @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); | checkLedgerHash(ledgerHash); | ||||
LedgerBlock block = ledger.getLatestBlock(); | LedgerBlock block = ledger.getLatestBlock(); | ||||
UserAccountQuery userAccountSet = ledger.getUserAccountSet(block); | 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]); | return userAccountSet.getHeaders(pages[0], pages[1]); | ||||
} | } | ||||
@@ -401,7 +401,7 @@ public class LedgerQueryService implements BlockchainQueryService { | |||||
checkLedgerHash(ledgerHash); | checkLedgerHash(ledgerHash); | ||||
LedgerBlock block = ledger.getLatestBlock(); | LedgerBlock block = ledger.getLatestBlock(); | ||||
DataAccountQuery dataAccountSet = ledger.getDataAccountSet(block); | 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]); | return dataAccountSet.getHeaders(pages[0], pages[1]); | ||||
} | } | ||||
@@ -410,7 +410,7 @@ public class LedgerQueryService implements BlockchainQueryService { | |||||
checkLedgerHash(ledgerHash); | checkLedgerHash(ledgerHash); | ||||
LedgerBlock block = ledger.getLatestBlock(); | LedgerBlock block = ledger.getLatestBlock(); | ||||
ContractAccountQuery contractAccountSet = ledger.getContractAccountSet(block); | 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]); | return contractAccountSet.getHeaders(pages[0], pages[1]); | ||||
} | } | ||||
@@ -474,7 +474,7 @@ public class LedgerQueryController implements BlockchainQueryService { | |||||
LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | ||||
LedgerBlock block = ledger.getLatestBlock(); | LedgerBlock block = ledger.getLatestBlock(); | ||||
UserAccountQuery userAccountSet = ledger.getUserAccountSet(block); | 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]); | return userAccountSet.getHeaders(pages[0], pages[1]); | ||||
} | } | ||||
@@ -494,7 +494,7 @@ public class LedgerQueryController implements BlockchainQueryService { | |||||
LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | ||||
LedgerBlock block = ledger.getLatestBlock(); | LedgerBlock block = ledger.getLatestBlock(); | ||||
DataAccountQuery dataAccountSet = ledger.getDataAccountSet(block); | 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]); | return dataAccountSet.getHeaders(pages[0], pages[1]); | ||||
} | } | ||||
@@ -506,7 +506,7 @@ public class LedgerQueryController implements BlockchainQueryService { | |||||
LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | LedgerQuery ledger = ledgerService.getLedger(ledgerHash); | ||||
LedgerBlock block = ledger.getLatestBlock(); | LedgerBlock block = ledger.getLatestBlock(); | ||||
ContractAccountQuery contractAccountSet = ledger.getContractAccountSet(block); | 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]); | return contractAccountSet.getHeaders(pages[0], pages[1]); | ||||
} | } | ||||
@@ -47,4 +47,21 @@ public class QueryUtil { | |||||
rtn[1] = count; | rtn[1] = count; | ||||
return rtn; | 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; | |||||
} | |||||
} | } |