1.首先是往redis中存入数据:
totalCost = yarnCost + hbaseCost + hdfsCost;
map.put("busiName", busiList.get(q).getAppname());
map.put("projectName", projectList.get(w).getGroupname());
map.put("userList", list1);
map.put("allCost", totalCost);
map.put("storageCost", hbaseCost + hdfsCost);
map.put("calculationCost", yarnCost);
// 流成本
map.put("liuCost", "0");
然后将map存入到list中:
list.add(map);
接下来是往redis中存入数据:
String redisid = redis_ip;
String redisport = redis_port;
Jedis jedis = new Jedis(redisid, Integer.valueOf(redisport));
String json = JSONObject.toJSONString(list);
jedis.set(tenantList.get(c).getTenantname(), json);
jedis.close();
存入redis库中的数据格式是:
是个String类型的JSON串(目前我是这么认为,因为对类型之间并不是很熟悉,尴尬!!!)
2.现在是从redis中取值,转成list集合,然后做分页查询:
public JsonResult getResourceCostCopy(@RequestParam(value="groupName")String groupName,@RequestParam(value="pageSize")Integer pageSize,@RequestParam(value="pageIndex")Integer pageIndex){
List<Object> list = new ArrayList<Object>();
String result = "";
Object object = "";
int fromIndex =0 ;
int toIndex = 0 ;
try {
String redisid = redis_ip;
String redisport = redis_port;
Jedis jedis = new Jedis(redisid, Integer.valueOf(redisport));
result = jedis.get(groupName);
System.out.println(pageSize);
System.out.println(pageIndex);
JSONArray jsonArray = JSONArray.parseArray(result);
Iterator<Object> iterator = jsonArray.iterator();
while(iterator.hasNext()){
object= iterator.next();
list.add(object);
}
System.out.println(list);
Paging paging = Paging.pagination(list.size(),pageSize,pageIndex);
fromIndex = paging.getQueryIndex();
toIndex = 0;
if (fromIndex + paging.getPageSize() >= list.size()){
toIndex = list.size();
}else {
toIndex = fromIndex + paging.getPageSize();
}
if (fromIndex > toIndex){
return (JsonResult) Collections.EMPTY_LIST;
}
System.out.println(list.subList(fromIndex,toIndex));
jedis.close();
} catch (Exception e) {
return new JsonResult(Constants.RESULTCODE_EXCEPTION, e.getMessage(), null);
}
return new JsonResult(Constants.RESULTCODE_SUCCESS, "获取联动表信息成功", list.subList(fromIndex,toIndex));
}
3.当然,这里避免不了需要自己写个工具类:
public class Paging {
private Integer totalNum;//总条数
private Integer totalPage;//总页数
private Integer pageSize;//每页条数
private Integer pageIndex;//当前页码
private Integer queryIndex;//当前页从第几条开始查
public static Paging pagination(Integer totalNum,Integer pageSize,Integer pageIndex){
Paging page = new Paging();
page.setTotalNum(totalNum);
Integer totalPage = totalNum % pageSize == 0 ? totalNum / pageSize : totalNum / pageSize + 1;
page.setTotalPage(totalPage);
page.setPageIndex(pageIndex);
page.setPageSize(pageSize);
page.setQueryIndex(pageSize * (pageIndex-1));
return page;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getPageIndex() {
return pageIndex;
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageIndex;
}
public Integer getQueryIndex() {
return queryIndex;
}
public void setQueryIndex(Integer queryIndex) {
this.queryIndex = queryIndex;
}
}
4.最后,前台使用get请求方式访问,传入groupName和每页展示的的条数以及当前页数,就能展现成果了。
哈哈 大功告成!!!!!