使用情景 :從現有運營商報告中返回的值,將其中的一個列表進行分頁。
@ApiOperation(value = "通話詳單分頁列表", notes = "通話詳單分頁列表(運營商)")
@RequestMapping(value = "/queryCallDetailsList", method = RequestMethod.POST)
public HttpResult<PageInfo<callDatailArrayVo>> queryCallDetailsList(@RequestBody UserAuthParam param) {
//默認報告類型爲運營商報告
param.setType(1);
try {
if(param==null||StringUtils.isEmpty(param.getContractUuid())){
logger.info("Platform:viewUserAuthByContractId-Param-Error");
return HttpResult.failResult(ResultCodeConstants.getMsg(ResultCodeConstants.CODE_S0006));
}
if(null == param.getPageCurrent() || param.getPageCurrent()<=0 ){
param.setPageCurrent(1);
}
if(null == param.getPageSize() || param.getPageSize()<=0 ){
param.setPageSize(10);
}
JSONObject commonReturn = commonService.viewUserAuthByContractId(param);
JSONObject data = commonReturn.getJSONObject("data");
JSONArray calldetailArrayArr = data.getJSONArray("calldetailArray");
String jsonStr = JSONObject.toJSONString(data.getJSONArray("calldetailArray"));
List<callDatailArrayVo> list = JSONObject.parseArray(calldetailArrayArr.toJSONString(),callDatailArrayVo.class);
List<callDatailArrayVo> listSort = new ArrayList<>();
//總條數
int size = list.size();
//截取的開始位置
int pageStart = param.getPageCurrent()==1?0:(param.getPageCurrent()-1)*param.getPageSize();
//截取的結束位置
int pageEnd = size < param.getPageCurrent()* param.getPageSize()?size:param.getPageCurrent()*param.getPageSize();
if(size > pageStart){
listSort = list.subList(pageStart,pageEnd);
}
//總頁數
int totalPage = list.size()% param.getPageSize() > 0 ? list.size()/param.getPageSize()+1 : list.size()/param.getPageSize();
PageInfo<callDatailArrayVo> pageInfo = new PageInfo<callDatailArrayVo>();
pageInfo.setCurrentPage(param.getPageCurrent());
pageInfo.setPageSize(param.getPageSize());
//總條數
pageInfo.setTotalCount(size);
//總頁數
pageInfo.setTotalPage(totalPage);
//列表數據
pageInfo.setDataList(listSort);
return HttpResult.successResult(pageInfo);
} catch (BusinessException ex) {
logger.error("Platform:viewUserAuth-business-Error:{}",ex);
return HttpResult.failResult(ex.getMessage());
} catch (Exception ex) {
logger.error("Platform:viewUserAuth-exception-Error:{}",ex);
return HttpResult.failResult(ResultCodeConstants.getMsg(ResultCodeConstants.CODE_S0003));
}
}