feat(可回溯): 可回溯
修改分页查询
This commit is contained in:
@@ -28,4 +28,8 @@ public class Order {
|
|||||||
private String fileId;
|
private String fileId;
|
||||||
private String fileUrl;
|
private String fileUrl;
|
||||||
private long createAt;
|
private long createAt;
|
||||||
|
@BsonIgnore
|
||||||
|
private int page;
|
||||||
|
@BsonIgnore
|
||||||
|
private int pageSize;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,6 @@ import java.util.List;
|
|||||||
public class OrderList {
|
public class OrderList {
|
||||||
private int page;
|
private int page;
|
||||||
private int pageSize;
|
private int pageSize;
|
||||||
private int total;
|
private long total;
|
||||||
private List<Order> list;
|
private List<Order> list;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
package com.wabestway.recall.repository;
|
package com.wabestway.recall.repository;
|
||||||
|
|
||||||
import com.wabestway.recall.model.Order;
|
import com.wabestway.recall.model.Order;
|
||||||
import org.springframework.data.domain.Example;
|
import org.springframework.data.domain.*;
|
||||||
import org.springframework.data.domain.Page;
|
|
||||||
import org.springframework.data.domain.PageRequest;
|
|
||||||
import org.springframework.data.domain.Sort;
|
|
||||||
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
|
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
|
||||||
|
import reactor.core.publisher.Flux;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
public interface OrderRepository extends ReactiveMongoRepository<Order, String> {
|
public interface OrderRepository extends ReactiveMongoRepository<Order, String> {
|
||||||
Mono<Order> findByOrderId(String orderId);
|
Mono<Order> findByOrderId(String orderId);
|
||||||
|
|
||||||
Mono<Order> findByTraceId(String traceId);
|
Mono<Order> findByTraceId(String traceId);
|
||||||
|
|
||||||
|
Mono<Page<Order>> findAll(Example<Order> example, Pageable pageable);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,21 +32,26 @@ public class OrderController {
|
|||||||
|
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
public Mono<ResObj> list(@RequestBody Order order) {
|
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()
|
ExampleMatcher matcher = ExampleMatcher.matching()
|
||||||
.withIgnoreNullValues().withIgnorePaths("createAt", "last");
|
.withIgnoreNullValues().withIgnorePaths("createAt", "last");
|
||||||
|
|
||||||
Example<Order> ep = Example.of(order, matcher);
|
Example<Order> ep = Example.of(order, matcher);
|
||||||
Sort s = Sort.by("createAt");
|
Sort s = Sort.by("createAt");
|
||||||
// Mono<List<Integer>> listMono = flux.collectList();
|
Mono<Page<Order>> pres = orderRepository.findAll(ep, pageRequest);
|
||||||
// listMono.subscribe(list -> System.out.println(list));
|
return pres.flatMap(p -> {
|
||||||
Flux<Order> flux = orderRepository.findAll(ep, s).skip(pageRequest.getOffset()).limitRate(pageRequest.getPageSize());
|
resList.setTotal(p.getTotalElements());
|
||||||
OrderList resList = new OrderList();
|
resList.setList(p.getContent());
|
||||||
Mono<List<Order>> listMono = flux.collectList();
|
|
||||||
return listMono.flatMap(list -> {
|
|
||||||
resList.setList(list);
|
|
||||||
return Mono.just(ResObj.ok(resList));
|
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}")
|
@PostMapping("/info/{orderId}")
|
||||||
|
|||||||
Reference in New Issue
Block a user