更新時間:2022-06-20 10:03:07 來源:動力節(jié)點 瀏覽6917次
動力節(jié)點小編告訴大家,在某些情況下,當我們調(diào)用第三方接口時,他們的接口會進行分頁,但是并不能滿足我們的需求。然后我們需要自己做分頁處理。總體思路是:
第一步:獲取第三方接口調(diào)用返回的所有結(jié)果(可以循環(huán)獲取)。具體例子請參考Step1。您應該根據(jù)自己的實際情況進行調(diào)整和修改。
第二步:根據(jù)返回值進行分頁(調(diào)用方法Step2)。同時寫了一個分頁工具(Step3)供大家參考
Step1:循環(huán)獲取第三方接口的所有數(shù)據(jù)
int pageIndex = 0;
int pageSize = 50;
//循環(huán),分頁獲取所有數(shù)據(jù)并返回結(jié)果
做{
頁面索引++;
//分頁第三方接口的輸入?yún)?shù)
requestType.pageInfo = new SoaPageInfoDto();
requestType.pageInfo.pageIndex = pageIndex;
requestType.pageInfo.pageSize = pageSize;
//調(diào)用第三方接口
soaRep = CreditCardOfflineSoaSrvClient.getInstance().queryTrainTicketUserStandardListNew(requestType);
if(soaRep == null || soaRep.queryUserInfoList == null){
休息;
}
結(jié)果列表.add(soaRep);
}while ((pageSize*pageIndex) <soaRep.pageDto.pageCount);/*循環(huán)結(jié)束條件是當前查詢數(shù)大于返回結(jié)果數(shù)*/
Step2 : 在返回結(jié)果前手動分頁
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ài) <T> List<T> handlePage(List<T> source, int start, int end){
int 總計 = source.size();
結(jié)束=結(jié)束>總計?總計:結(jié)束;
如果(結(jié)束<=開始){
返回空值;
}
返回源.subList(開始,結(jié)束);
}
}
以上情況是項目實際應用中遇到的問題及解決方法。大家如果想了解更多相關(guān)知識,可以關(guān)注一下動力節(jié)點的Java視頻教程,里面的課程內(nèi)容從入門到精通,細致全面,通俗易懂,很適合沒有基礎(chǔ)的小伙伴學習,希望對大家能夠有所幫助。