更新時(shí)間:2022-06-20 10:03:07 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽6671次
動(dòng)力節(jié)點(diǎn)小編告訴大家,在某些情況下,當(dāng)我們調(diào)用第三方接口時(shí),他們的接口會(huì)進(jìn)行分頁(yè),但是并不能滿足我們的需求。然后我們需要自己做分頁(yè)處理。總體思路是:
第一步:獲取第三方接口調(diào)用返回的所有結(jié)果(可以循環(huán)獲取)。具體例子請(qǐng)參考Step1。您應(yīng)該根據(jù)自己的實(shí)際情況進(jìn)行調(diào)整和修改。
第二步:根據(jù)返回值進(jìn)行分頁(yè)(調(diào)用方法Step2)。同時(shí)寫(xiě)了一個(gè)分頁(yè)工具(Step3)供大家參考
Step1:循環(huán)獲取第三方接口的所有數(shù)據(jù)
int pageIndex = 0;
int pageSize = 50;
//循環(huán),分頁(yè)獲取所有數(shù)據(jù)并返回結(jié)果
做{
頁(yè)面索引++;
//分頁(yè)第三方接口的輸入?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é)束條件是當(dāng)前查詢數(shù)大于返回結(jié)果數(shù)*/
Step2 : 在返回結(jié)果前手動(dòng)分頁(yè)
if (activityInfoList != null && activityInfoList.size()> 0) {
//實(shí)際請(qǐng)求的pageIndex和pageSize
int start = (req.pageIndex -1) * req.pageSize;
int end = req.pageIndex * req.pageSize;
response.activityInfos = PageHandleUtil.handlePage(activityInfoList, start, end);
}
Step3(PageHandleUtil工具類(lèi)):
公共類(lèi) PageHandleUtil {
公共靜態(tài) <T> List<T> handlePage(List<T> source, int start, int end){
int 總計(jì) = source.size();
結(jié)束=結(jié)束>總計(jì)?總計(jì):結(jié)束;
如果(結(jié)束<=開(kāi)始){
返回空值;
}
返回源.subList(開(kāi)始,結(jié)束);
}
}
以上情況是項(xiàng)目實(shí)際應(yīng)用中遇到的問(wèn)題及解決方法。大家如果想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java視頻教程,里面的課程內(nèi)容從入門(mén)到精通,細(xì)致全面,通俗易懂,很適合沒(méi)有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743