@@ -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.
@@ -36,4 +36,9 @@ public class LocalLogController {
return ResponseEntity.ok().body(Response.buildSuccess(pagedLogs));
+ return ResponseEntity.ok().body(Response.buildSuccess(localLogService.getTotalPageCount(pageSize)));
@@ -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);
@@ -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);
@@ -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);
+ return Math.toIntExact(count / pageSize + 1);
private boolean isParsableLong(String keyword) {
try {
Long.parseLong(keyword);
@@ -79,6 +79,20 @@ public class LocalLogServiceImpl implements LocalLogService {
return ans;
+ long count = localLogRepository.count();