java后端不使用mybatis插件的手工分页

使用情景 :从现有运营商报告中返回的值,将其中的一个列表进行分页。

	@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));
		}
	}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值