标签:return status count imp gen ges alc stat product
@Override public Page<ProductInfo> findAll(Pageable pageable, ProductInfo productInfo) { //创建一个操作聚合operations List<AggregationOperation> operations = new ArrayList<>(); //创建一个条件类criteria Criteria criteria = new Criteria(); //商品状态不为空 if (productInfo.getProductStatus()!=null){ //productStatus等于查询的商品状态这个条件添加进操作聚合operations operations.add(Aggregation.match(criteria.and("productStatus").is(productInfo.getProductStatus()))); } long totalCount = 0; //总页数 if (operations!= null && operations.size() > 0){ //操作聚合 Aggregation aggregationCount = newAggregation(operations); //查询总的数据条数,返回一个集合 AggregationResults<ProductInfo> resultsCount = mongoTemplate.aggregate(aggregationCount, "productInfo", ProductInfo.class); totalCount = resultsCount.getMappedResults().size(); }else{ //操作聚合为空,查询总的数据条数 totalCount = mongoTemplate.findAll(ProductInfo.class).size(); } //操作聚合添加页数乘以每页大小等于总页数 operations.add(Aggregation.skip((long) (pageable.getPageNumber()) * pageable.getPageSize())); //操作聚合添加返回一页的数据 operations.add(Aggregation.limit(pageable.getPageSize())); //操作聚合添加根据solveCount降序排序 // operations.add(Aggregation.sort(Sort.Direction.DESC, "solveCount")); Aggregation aggregation = newAggregation(operations); //根据条件查询数据 AggregationResults<ProductInfo> results = mongoTemplate.aggregate(aggregation, "productInfo", ProductInfo.class); //返回结果的map和分页信息和总记录数 return new PageImpl<>(results.getMappedResults(),pageable,totalCount); }
标签:return status count imp gen ges alc stat product
原文地址:https://www.cnblogs.com/amoyzhu/p/9023252.html