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


/**
 * 从内存中查找需要的商品信息
 * 
 * @author: Santy
 * @date: 2015年7月15日
*/
@SuppressWarnings("unchecked")
private Map<String, Object> searchFromMenory(Map<String, Object> map) {
Map<String, Object> tMap = new HashMap<String, Object>();
// 条件查询
List<ProductVo> products = (List<ProductVo>) map.get("rows");
List<ProductVo> tmpList1 = new ArrayList<ProductVo>();
List<ProductVo> tmpList2 = new ArrayList<ProductVo>();
List<ProductVo> tmpList3 = new ArrayList<ProductVo>();
List<ProductVo> tmpList4 = new ArrayList<ProductVo>();
// 条件过滤筛选
// 供应商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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值