diff --git a/src/main/java/com/wabestway/recall/model/Order.java b/src/main/java/com/wabestway/recall/model/Order.java index 885fac4..b081897 100644 --- a/src/main/java/com/wabestway/recall/model/Order.java +++ b/src/main/java/com/wabestway/recall/model/Order.java @@ -28,4 +28,8 @@ public class Order { private String fileId; private String fileUrl; private long createAt; + @BsonIgnore + private int page; + @BsonIgnore + private int pageSize; } diff --git a/src/main/java/com/wabestway/recall/model/OrderList.java b/src/main/java/com/wabestway/recall/model/OrderList.java index 76e53cf..5d9f624 100644 --- a/src/main/java/com/wabestway/recall/model/OrderList.java +++ b/src/main/java/com/wabestway/recall/model/OrderList.java @@ -8,6 +8,6 @@ import java.util.List; public class OrderList { private int page; private int pageSize; - private int total; + private long total; private List list; } diff --git a/src/main/java/com/wabestway/recall/repository/OrderRepository.java b/src/main/java/com/wabestway/recall/repository/OrderRepository.java index 1b25d26..6d00ab1 100644 --- a/src/main/java/com/wabestway/recall/repository/OrderRepository.java +++ b/src/main/java/com/wabestway/recall/repository/OrderRepository.java @@ -1,15 +1,15 @@ package com.wabestway.recall.repository; import com.wabestway.recall.model.Order; -import org.springframework.data.domain.Example; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; +import org.springframework.data.domain.*; import org.springframework.data.mongodb.repository.ReactiveMongoRepository; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; public interface OrderRepository extends ReactiveMongoRepository { Mono findByOrderId(String orderId); Mono findByTraceId(String traceId); + + Mono> findAll(Example example, Pageable pageable); } diff --git a/src/main/java/com/wabestway/recall/web/OrderController.java b/src/main/java/com/wabestway/recall/web/OrderController.java index 27a030f..3c8819f 100644 --- a/src/main/java/com/wabestway/recall/web/OrderController.java +++ b/src/main/java/com/wabestway/recall/web/OrderController.java @@ -32,21 +32,26 @@ public class OrderController { @PostMapping("/list") public Mono list(@RequestBody Order order) { - PageRequest pageRequest = PageRequest.of(0, 1); + OrderList resList = new OrderList(); + PageRequest pageRequest = PageRequest.of(order.getPage(), order.getPageSize()); ExampleMatcher matcher = ExampleMatcher.matching() .withIgnoreNullValues().withIgnorePaths("createAt", "last"); Example ep = Example.of(order, matcher); Sort s = Sort.by("createAt"); -// Mono> listMono = flux.collectList(); -// listMono.subscribe(list -> System.out.println(list)); - Flux flux = orderRepository.findAll(ep, s).skip(pageRequest.getOffset()).limitRate(pageRequest.getPageSize()); - OrderList resList = new OrderList(); - Mono> listMono = flux.collectList(); - return listMono.flatMap(list -> { - resList.setList(list); + Mono> pres = orderRepository.findAll(ep, pageRequest); + return pres.flatMap(p -> { + resList.setTotal(p.getTotalElements()); + resList.setList(p.getContent()); return Mono.just(ResObj.ok(resList)); }); +// Flux flux = orderRepository.findAll(ep, s).skip(pageRequest.getOffset()).limitRate(pageRequest.getPageSize()); +// +// Mono> listMono = flux.collectList(); +// return listMono.flatMap(list -> { +// resList.setList(list); +// return Mono.just(ResObj.ok(resList)); +// }); } @PostMapping("/info/{orderId}")