使用情景 :从现有运营商报告中返回的值,将其中的一个列表进行分页。
@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));
}
}