feat(可回溯): 可回溯
修改分页查询
This commit is contained in:
@@ -28,4 +28,8 @@ public class Order {
|
||||
private String fileId;
|
||||
private String fileUrl;
|
||||
private long createAt;
|
||||
@BsonIgnore
|
||||
private int page;
|
||||
@BsonIgnore
|
||||
private int pageSize;
|
||||
}
|
||||
|
||||
@@ -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<Order> list;
|
||||
}
|
||||
|
||||
@@ -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<Order, String> {
|
||||
Mono<Order> findByOrderId(String orderId);
|
||||
|
||||
Mono<Order> findByTraceId(String traceId);
|
||||
|
||||
Mono<Page<Order>> findAll(Example<Order> example, Pageable pageable);
|
||||
}
|
||||
|
||||
@@ -32,21 +32,26 @@ public class OrderController {
|
||||
|
||||
@PostMapping("/list")
|
||||
public Mono<ResObj> 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<Order> ep = Example.of(order, matcher);
|
||||
Sort s = Sort.by("createAt");
|
||||
// Mono<List<Integer>> listMono = flux.collectList();
|
||||
// listMono.subscribe(list -> System.out.println(list));
|
||||
Flux<Order> flux = orderRepository.findAll(ep, s).skip(pageRequest.getOffset()).limitRate(pageRequest.getPageSize());
|
||||
OrderList resList = new OrderList();
|
||||
Mono<List<Order>> listMono = flux.collectList();
|
||||
return listMono.flatMap(list -> {
|
||||
resList.setList(list);
|
||||
Mono<Page<Order>> pres = orderRepository.findAll(ep, pageRequest);
|
||||
return pres.flatMap(p -> {
|
||||
resList.setTotal(p.getTotalElements());
|
||||
resList.setList(p.getContent());
|
||||
return Mono.just(ResObj.ok(resList));
|
||||
});
|
||||
// Flux<Order> flux = orderRepository.findAll(ep, s).skip(pageRequest.getOffset()).limitRate(pageRequest.getPageSize());
|
||||
//
|
||||
// Mono<List<Order>> listMono = flux.collectList();
|
||||
// return listMono.flatMap(list -> {
|
||||
// resList.setList(list);
|
||||
// return Mono.just(ResObj.ok(resList));
|
||||
// });
|
||||
}
|
||||
|
||||
@PostMapping("/info/{orderId}")
|
||||
|
||||
Reference in New Issue
Block a user