java 内存数据的条件筛选和分页处理


/**
 * 从内存中查找需要的商品信息
 * 
 * @author: Santy
 * @date: 2015年7月15日
*/
@SuppressWarnings("unchecked")
private Map searchFromMenory(Map map) {
Map tMap = new HashMap();
// 条件查询
List products = (List) map.get("rows");
List tmpList1 = new ArrayList();
List tmpList2 = new ArrayList();
List tmpList3 = new ArrayList();
List tmpList4 = new ArrayList();
// 条件过滤筛选
// 供应商id
if (supId != null) {
for (int i = 0; i < products.size(); i++) {
ProductVo vo = products.get(i);
if (vo.getSupplierId() != null && vo.getSupplierId().longValue() == supId.longValue()) {
tmpList1.add(vo);
}
}
} else {
tmpList1 = products;
}
// 商品编号/或者商品名称
if (StringUtils.isNotBlank(q)) {
for (int i = 0; i < tmpList1.size(); i++) {
ProductVo vo = tmpList1.get(i);
if (StringUtils.isNotBlank(vo.getProNo()) && vo.getProNo().contains(q)) {
// 如果是商品编码
tmpList2.add(vo);
} else if (StringUtils.isNotBlank(vo.getProName()) && vo.getProName().contains(q)) {
// 如果是商品名称
tmpList2.add(vo);
}
}
} else {
tmpList2 = tmpList1;
}

// 商品类型(自营或联营)
if (busType != null) {
for (int i = 0; i < tmpList2.size(); i++) {
ProductVo vo = tmpList2.get(i);
if (busType.intValue() == 1) {
tmpList3.add(vo);
} else {
tmpList3.add(vo);
}
}
} else {
tmpList3 = tmpList2;
}
// 分页处理
pager = getPager();
if (CollectionUtils.listNotNull(tmpList3)) {
if (tmpList3.size() > pager.getPageSize()) {
// 当前页
int curPage = pager.getPageIndex();
int start = pager.getStartIndex(curPage);
int end = pager.getStartIndex(curPage + 1);
if (tmpList3.size() < end) {
end = tmpList3.size();
}
for (int i = start; i < end; i++) {
tmpList4.add(tmpList3.get(i));
}
} else {
tmpList4 = tmpList3;
}
}

tMap.put("rows", tmpList4);
tMap.put("total", tmpList3.size());

return tMap;
}

你可能感兴趣的:(Java)