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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章