diff --git a/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java b/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java index fd01959..16a2f7a 100644 --- a/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java +++ b/src/main/java/com/lanyuanxiaoyao/service/template/service/SimpleServiceSupport.java @@ -482,11 +482,18 @@ public abstract class SimpleServiceSupport implemen public Page list(Query listQuery) { var pageRequest = PageRequest.of(DEFAULT_PAGE_INDEX - 1, DEFAULT_PAGE_SIZE, Sort.by(SimpleEntity.Fields.createdTime).descending()); if (ObjectHelper.isNotNull(listQuery.getPage())) { - pageRequest = PageRequest.of( - ObjectHelper.defaultIfNull(listQuery.getPage().getIndex(), DEFAULT_PAGE_INDEX) - 1, - ObjectHelper.defaultIfNull(listQuery.getPage().getSize(), DEFAULT_PAGE_SIZE), - Sort.by(SimpleEntity.Fields.createdTime).descending() - ); + var index = Math.max(ObjectHelper.defaultIfNull(listQuery.getPage().getIndex(), DEFAULT_PAGE_INDEX) - 1, 0); + var size = Math.max(ObjectHelper.defaultIfNull(listQuery.getPage().getSize(), DEFAULT_PAGE_SIZE), 1); + if (ObjectHelper.isNotEmpty(listQuery.getSort())) { + pageRequest = PageRequest.of(index, size, Sort.by( + listQuery.getSort() + .stream() + .map(sort -> new Sort.Order(Sort.Direction.fromString(sort.getDirection().name()), sort.getColumn())) + .toList() + )); + } else { + pageRequest = PageRequest.of(index, size); + } } return repository.findAll( (root, query, builder) -> {