From 182f6b97e9bc49df9e58e471ba2127a2ce9af319 Mon Sep 17 00:00:00 2001 From: qmstyle Date: Fri, 14 Mar 2025 16:54:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exam/controller/PermissionController.java | 28 +++++++++++++++++-- .../exam/controller/UserController.java | 2 +- .../com/zhangmeng/online/exam/dto/Result.java | 11 ++++++++ .../online/exam/utils/PageUtils.java | 21 ++++++++++++++ 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/zhangmeng/online/exam/utils/PageUtils.java diff --git a/src/main/java/com/zhangmeng/online/exam/controller/PermissionController.java b/src/main/java/com/zhangmeng/online/exam/controller/PermissionController.java index 068b90a..af7a9c3 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/PermissionController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/PermissionController.java @@ -4,7 +4,12 @@ import com.zhangmeng.online.exam.dao.PermissionDao; import com.zhangmeng.online.exam.dto.Result; import com.zhangmeng.online.exam.entity.Permission; import com.zhangmeng.online.exam.entity.Role; +import com.zhangmeng.online.exam.utils.PageUtils; 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.data.domain.Sort; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -25,9 +30,26 @@ public class PermissionController { @Autowired private PermissionDao permissionDao; + /** + * // 基本分页(无排序) + * Pageable pageable = PageRequest.of(0, 10); + * + * // 分页+排序(单字段) + * Pageable pageable = PageRequest.of(0, 10, Sort.Direction.DESC, "createTime"); + * + * // 分页+多字段排序 + * Sort sort = Sort.by(Sort.Order.asc("age"), Sort.Order.desc("name")); + * Pageable pageable = PageRequest.of(0, 10, sort); + * @param pageNum + * @param pageSize + * @return + */ @RequestMapping("/list") - public Result list() { - List list = permissionDao.findAll(); + public Result list(Integer pageNum, Integer pageSize) { + + Pageable pageable = PageRequest.of(PageUtils.getPageNum(pageNum), pageSize, Sort.Direction.DESC, "addTime"); + Page all = permissionDao.findAll(pageable); + List list = all.getContent(); List> resultList = new ArrayList<>(); for (Permission permission : list) { Map map = new HashMap<>(); @@ -37,6 +59,6 @@ public class PermissionController { map.put("url", permission.getUrl()); resultList.add(map); } - return Result.success(resultList); + return Result.success(pageNum, pageSize, all.getTotalElements(), resultList); } } diff --git a/src/main/java/com/zhangmeng/online/exam/controller/UserController.java b/src/main/java/com/zhangmeng/online/exam/controller/UserController.java index bac79dc..da182d1 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/UserController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/UserController.java @@ -38,7 +38,7 @@ public class UserController { private EntityManager entityManager; @GetMapping("/list") - public Result userList() { + public Result userList(Integer pageNum,Integer pageSize) { List list = userDao.findAll(); List> resultList = new ArrayList<>(); for (User user : list) { diff --git a/src/main/java/com/zhangmeng/online/exam/dto/Result.java b/src/main/java/com/zhangmeng/online/exam/dto/Result.java index 7b60bad..5d717e7 100644 --- a/src/main/java/com/zhangmeng/online/exam/dto/Result.java +++ b/src/main/java/com/zhangmeng/online/exam/dto/Result.java @@ -36,6 +36,17 @@ public class Result { this.data = data; } + public static Result success(int pageNum, int pageSize, long total, Object data) { + Result result = new Result(); + result.setPageNum(pageNum); + result.setPageSize(pageSize); + result.setTotal(total); + result.setCode(SUCCESS); + result.setMessage("success"); + result.setData(data); + return result; + } + public static Result success(Object data) { Result result = new Result(); result.setCode(SUCCESS); diff --git a/src/main/java/com/zhangmeng/online/exam/utils/PageUtils.java b/src/main/java/com/zhangmeng/online/exam/utils/PageUtils.java new file mode 100644 index 0000000..c376a6b --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/utils/PageUtils.java @@ -0,0 +1,21 @@ +package com.zhangmeng.online.exam.utils; + +/** + * @author zm + * @date 2025/3/14 16:36 + * @version: 1.0 + */ +public class PageUtils { + + public static int getPageNum(Integer pageNum){ + if (pageNum == null){ + pageNum = 0; + }else if (pageNum <= 0){ + pageNum = 0; + }else { + pageNum = pageNum - 1; + } + return pageNum; + } + +}