話不多說直接貼代碼
1 @GetMapping("/getCdrDetailList/{billingCycleId}/{acctId}/{acctItemTypeId}/{pageNum}") 2 public List<CdrDetailVO> getCdrDetailList(@PathVariable("billingCycleId") Long billingCycleId, 3 @PathVariable("acctId") Long acctId, 4 @PathVariable("acctItemTypeId") Long acctItemTypeId, 5 @PathVariable("pageNum") int pageNum) { 6 // 重要:因為涉及多表結果集合並,每個表的數據組裝邏輯差距極大,並且根據入參條件查詢出來的結果集數量很小,故考慮使用java內存list的lambda分頁 7 List<CdrDetailVO> cdrDetailList = ledgerQryService.getCdrDetailList(billingCycleId, acctId, acctItemTypeId); 8 int pageSize = 15; 9 // lambda分頁 10 List<CdrDetailVO> result = cdrDetailList.stream().skip(pageSize * (pageNum - 1)).limit(pageSize).collect(Collectors.toList()); 11 return result; 12 }