Sfoglia il codice sorgente

feat: 添加了查看总页数的功能

刘一也 4 anni fa
parent
commit
7c547daa0a

+ 5 - 0
src/main/java/cn/seecoder/devmanage/controller/LimitRangeRequestController.java

@@ -78,6 +78,11 @@ public class LimitRangeRequestController {
         return ResponseEntity.ok().body(Response.buildSuccess(pagedLimitRequests));
     }
 
+    @GetMapping("/pages")
+    public ResponseEntity<Response<Integer>> getTotalPages(@RequestParam Integer pageSize) {
+        return ResponseEntity.ok().body(Response.buildSuccess(limitRequestService.getTotalPageCount(pageSize)));
+    }
+
     /**
      * This is an API for students and not for administrators.
      * Vip students can have their LimitRange changed in a certain permitted range.

+ 5 - 0
src/main/java/cn/seecoder/devmanage/controller/LocalLogController.java

@@ -36,4 +36,9 @@ public class LocalLogController {
         return ResponseEntity.ok().body(Response.buildSuccess(pagedLogs));
     }
 
+    @GetMapping("/pages")
+    public ResponseEntity<Response<Integer>> getTotalPages(@RequestParam Integer pageSize) {
+        return ResponseEntity.ok().body(Response.buildSuccess(localLogService.getTotalPageCount(pageSize)));
+    }
+
 }

+ 1 - 0
src/main/java/cn/seecoder/devmanage/service/LimitRequestService.java

@@ -10,4 +10,5 @@ public interface LimitRequestService {
     List<LimitRequestVO> searchPagedLimitRequests(Integer pageNo, Integer pageSize, String keyword, Boolean descByTime);
     boolean permitRequest(Long limitRequestId);
     boolean denyRequest(Long limitRequestId);
+    Integer getTotalPageCount(Integer pageSize);
 }

+ 1 - 0
src/main/java/cn/seecoder/devmanage/service/LocalLogService.java

@@ -7,4 +7,5 @@ import java.util.List;
 public interface LocalLogService {
     List<LocalLogVO> getPagedLogs(Integer pageNo, Integer pageSize, Boolean descByTime);
     List<LocalLogVO> searchPagedLogs(Integer pageNo, Integer pageSize, String keyword, Boolean descByTime);
+    Integer getTotalPageCount(Integer pageSize);
 }

+ 14 - 0
src/main/java/cn/seecoder/devmanage/service/impl/LimitRequestServiceImpl.java

@@ -178,6 +178,20 @@ public class LimitRequestServiceImpl implements LimitRequestService {
         }
     }
 
+    @Override
+    public Integer getTotalPageCount(Integer pageSize) {
+        if (isInvalidPageSize(pageSize)) {
+            return 0;
+        } else {
+            long count = limitRequestRepository.count();
+            if (count % pageSize == 0) {
+                return Math.toIntExact(count / pageSize);
+            } else {
+                return Math.toIntExact(count / pageSize + 1);
+            }
+        }
+    }
+
     private boolean isParsableLong(String keyword) {
         try {
             Long.parseLong(keyword);

+ 14 - 0
src/main/java/cn/seecoder/devmanage/service/impl/LocalLogServiceImpl.java

@@ -79,6 +79,20 @@ public class LocalLogServiceImpl implements LocalLogService {
         return ans;
     }
 
+    @Override
+    public Integer getTotalPageCount(Integer pageSize) {
+        if (isInvalidPageSize(pageSize)) {
+            return 0;
+        } else {
+            long count = localLogRepository.count();
+            if (count % pageSize == 0) {
+                return Math.toIntExact(count / pageSize);
+            } else {
+                return Math.toIntExact(count / pageSize + 1);
+            }
+        }
+    }
+
     private boolean isParsableLong(String keyword) {
         try {
             Long.parseLong(keyword);