更新時間:2022-06-20 10:03:07 來源:動力節點 瀏覽6927次
動力節點小編告訴大家,在某些情況下,當我們調用第三方接口時,他們的接口會進行分頁,但是并不能滿足我們的需求。然后我們需要自己做分頁處理。總體思路是:
第一步:獲取第三方接口調用返回的所有結果(可以循環獲取)。具體例子請參考Step1。您應該根據自己的實際情況進行調整和修改。
第二步:根據返回值進行分頁(調用方法Step2)。同時寫了一個分頁工具(Step3)供大家參考
Step1:循環獲取第三方接口的所有數據
int pageIndex = 0;
int pageSize = 50;
//循環,分頁獲取所有數據并返回結果
做{
頁面索引++;
//分頁第三方接口的輸入參數
requestType.pageInfo = new SoaPageInfoDto();
requestType.pageInfo.pageIndex = pageIndex;
requestType.pageInfo.pageSize = pageSize;
//調用第三方接口
soaRep = CreditCardOfflineSoaSrvClient.getInstance().queryTrainTicketUserStandardListNew(requestType);
if(soaRep == null || soaRep.queryUserInfoList == null){
休息;
}
結果列表.add(soaRep);
}while ((pageSize*pageIndex) <soaRep.pageDto.pageCount);/*循環結束條件是當前查詢數大于返回結果數*/
Step2 : 在返回結果前手動分頁
if (activityInfoList != null && activityInfoList.size()> 0) {
//實際請求的pageIndex和pageSize
int start = (req.pageIndex -1) * req.pageSize;
int end = req.pageIndex * req.pageSize;
response.activityInfos = PageHandleUtil.handlePage(activityInfoList, start, end);
}
Step3(PageHandleUtil工具類):
公共類 PageHandleUtil {
公共靜態 <T> List<T> handlePage(List<T> source, int start, int end){
int 總計 = source.size();
結束=結束>總計?總計:結束;
如果(結束<=開始){
返回空值;
}
返回源.subList(開始,結束);
}
}
以上情況是項目實際應用中遇到的問題及解決方法。大家如果想了解更多相關知識,可以關注一下動力節點的Java視頻教程,里面的課程內容從入門到精通,細致全面,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習