Browse Source

Merge branch 'feature/latest_record_first_show' into feature/show_exeState

tags/1.1.1^2
zhaoguangwei 4 years ago
parent
commit
ff70bd723c
4 changed files with 40 additions and 9 deletions
  1. +17
    -3
      source/gateway/src/main/java/com/jd/blockchain/gateway/web/BlockBrowserController.java
  2. +3
    -3
      source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerQueryService.java
  3. +3
    -3
      source/peer/src/main/java/com/jd/blockchain/peer/web/LedgerQueryController.java
  4. +17
    -0
      source/utils/utils-common/src/main/java/com/jd/blockchain/utils/QueryUtil.java

+ 17
- 3
source/gateway/src/main/java/com/jd/blockchain/gateway/web/BlockBrowserController.java View File

@@ -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;
}
}

+ 3
- 3
source/ledger/ledger-core/src/main/java/com/jd/blockchain/ledger/core/LedgerQueryService.java View File

@@ -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]);
}



+ 3
- 3
source/peer/src/main/java/com/jd/blockchain/peer/web/LedgerQueryController.java View File

@@ -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]);
}



+ 17
- 0
source/utils/utils-common/src/main/java/com/jd/blockchain/utils/QueryUtil.java View File

@@ -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;
}
}

Loading…
Cancel
Save