From 64d7ae8c593f60e3a923ddae99389abc0a532257 Mon Sep 17 00:00:00 2001 From: heshunme Date: Wed, 3 Jul 2024 13:02:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AEwarning=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BApagedModel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NewsController.java | 4 ++-- .../NewsManagement/service/NewsService.java | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java b/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java index 30d0f45..969d774 100644 --- a/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java +++ b/src/main/java/org/cmh/backend/NewsManagement/controller/NewsController.java @@ -5,7 +5,7 @@ import org.cmh.backend.NewsManagement.model.News; import org.cmh.backend.NewsManagement.service.NewsService; import org.cmh.backend.Utils.JwtVerify; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; +import org.springframework.hateoas.PagedModel; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -21,7 +21,7 @@ public class NewsController { @GetMapping("/getNewsPage") @JwtVerify - public ResponseEntity> getNewsPage(@RequestBody GetNewsByPageRequest request) { + public ResponseEntity> getNewsPage(@RequestBody GetNewsByPageRequest request) { return new ResponseEntity<>(newsService.getNewsByPage(request), HttpStatus.OK); } diff --git a/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java b/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java index 3f42e2c..2b7aa03 100644 --- a/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java +++ b/src/main/java/org/cmh/backend/NewsManagement/service/NewsService.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.hateoas.PagedModel; import org.springframework.stereotype.Service; @Service @@ -14,7 +15,7 @@ public class NewsService { @Autowired private NewsRepository newsRepository; - public Page getNewsByPage(GetNewsByPageRequest request) { + public PagedModel getNewsByPage(GetNewsByPageRequest request) { int pageNo = request.getPageNo(); int pageSize = request.getPageSize(); if (pageNo < 1) { @@ -24,6 +25,17 @@ public class NewsService { pageSize = 10; } Pageable pageable = PageRequest.of(pageNo - 1, pageSize); - return newsRepository.findAllByOrderByIdDesc(pageable); + Page newsPage = newsRepository.findAllByOrderByIdDesc(pageable); + return toPagedModel(newsPage); + } + + private PagedModel toPagedModel(Page page) { + PagedModel.PageMetadata pageMetadata = new PagedModel.PageMetadata( + page.getSize(), + page.getNumber(), + page.getTotalElements(), + page.getTotalPages() + ); + return PagedModel.of(page.getContent(), pageMetadata); } }