文章正文

redis分页示例

【文章】2020-04-23

简介redis分页示例

public Object queryForList(Map<String, Object> params) throws Exception {
		XydlCmsArticle paramEntity = (XydlCmsArticle) ParamUtils.map2Obj(params, XydlCmsArticle.class);
		paramEntity.setParamMap(params);
		// 分页处理
		int curPage = 1, pageSize = 20;
		if (StringUtils.isNotBlank((String) params.get("curPage"))
				&& StringUtils.isNotBlank((String) params.get("pageSize"))) {
			curPage = Integer.valueOf(params.get("curPage").toString());
			pageSize = Integer.valueOf(params.get("pageSize").toString());
		}
		String keyPattern = ListKeysEnum.NEWSLIST.toString();
		List<String> list = redisUtil.lrange(keyPattern, (curPage - 1) * pageSize, curPage * pageSize - 1);
		List<XydlCmsArticle> articles = Lists.newArrayList();
		PageInfo<XydlCmsArticle> pageInfo = new PageInfo<>();
		if (list != null && list.size() > 0) {
			for (String data : list) {
				articles.add(JSONObject.parseObject(data, XydlCmsArticle.class));
			}
			int total = xydlCmsArticleMapper.count(paramEntity);
			pageInfo.setPageNum(curPage);
			pageInfo.setPageSize(pageSize);
			// total : 总数
			// pageSize : 每页显示数
			// totalPage : 共页数
			pageInfo.setPages((total + pageSize - 1) / pageSize);
			pageInfo.setList(articles);
		} else {
			// 查询数据-db
			PageHelper.startPage(curPage, pageSize);
			articles = xydlCmsArticleMapper.query(paramEntity);
			pageInfo = new PageInfo<>(articles);
			for (XydlCmsArticle xydlCmsArticle : articles) {
				redisUtil.lpush(keyPattern, JSONObject.toJSONString(xydlCmsArticle));
			}
		}
		return pageInfo;
	}

打赏支持

感谢您的支持,加油!

打开微信扫码打赏,你说多少就多少

找书费时,联系客服快速获取!

扫码支持

在线客服8:30-22:30,若离线请留言!

获取教程,请联系在线客服!

扫码支持

在线客服8:30-22:30,若离线请留言!

热门阅读

找PDF电子书,太费时间?

  • 微信扫描二维码,让客服快速查找。
  • 在线客服8:30-22:00,若离线请留言!