76 lines
2.4 KiB
Java
76 lines
2.4 KiB
Java
/************************************************************
|
|
*
|
|
* @packageName : io.company.localhost.utils
|
|
* @fileName : PageUtil.java
|
|
* @author : 조인제
|
|
* @date : 24.12.06
|
|
* @description :
|
|
*
|
|
* ===========================================================
|
|
* DATE AUTHOR NOTE
|
|
* -----------------------------------------------------------
|
|
* 24.12.06 조인제 최초 생성
|
|
*
|
|
*************************************************************/
|
|
package io.company.localhost.utils;
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
import io.company.localhost.common.dto.MapDto;
|
|
|
|
public class PageUtil {
|
|
|
|
|
|
public static PageInfo<MapDto> redefineNavigation(PageInfo<MapDto> list){
|
|
|
|
// 페이지 배열
|
|
int[] nav = list.getNavigatepageNums();
|
|
// 몇 페이지
|
|
int navigatePages = list.getNavigatePages();
|
|
// 현재 페이지
|
|
int currentPage = list.getPageNum();
|
|
// 총 페이지 수
|
|
int total = list.getPages();
|
|
// 배열 길이
|
|
int navLength = nav.length;
|
|
|
|
if(navLength != 0){
|
|
int ff = (int) Math.ceil((double) nav[navLength -1] / navigatePages);
|
|
|
|
int gg = ff * navigatePages;
|
|
|
|
if(gg - currentPage >= navigatePages){
|
|
gg = gg - navigatePages;
|
|
}else if(gg == 0){
|
|
gg = navigatePages;
|
|
}
|
|
|
|
if(gg > total && total >= navigatePages ){
|
|
navLength = total%navigatePages;
|
|
}
|
|
|
|
int[] nav2 = new int[navLength];
|
|
gg = gg - (navigatePages - 1);
|
|
for(int i = 0 ; i < nav2.length ; i++){
|
|
nav2[i] = gg++;
|
|
}
|
|
list.setNavigatepageNums(nav2);
|
|
list.setNavigateFirstPage(nav2[0]);
|
|
list.setNavigateLastPage(nav2[nav2.length -1]);
|
|
}
|
|
|
|
// 페이지 그룹 크기 (예: 10개씩)
|
|
int groupSize = list.getNavigatePages();
|
|
int totalPages = list.getPages();
|
|
|
|
// 현재 페이지 그룹 계산
|
|
int currentGroup = (int) Math.ceil((double) currentPage / groupSize);
|
|
int totalGroups = (int) Math.ceil((double) totalPages / groupSize);
|
|
|
|
// 이전/다음 그룹 존재 여부 설정
|
|
list.setHasPreviousPage(currentGroup > 1); // 이전 그룹 존재
|
|
list.setHasNextPage(currentGroup < totalGroups); // 다음 그룹 존재
|
|
|
|
return list;
|
|
}
|
|
}
|