package kr.wisestone.owl.util;
|
|
import kr.wisestone.owl.common.MessageAccessor;
|
import kr.wisestone.owl.constant.MsgConstants;
|
import kr.wisestone.owl.exception.OwlRuntimeException;
|
import kr.wisestone.owl.vo.PageVo;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Sort;
|
|
public class PageUtil {
|
@SuppressWarnings("unused")
|
private static final Logger LOGGER = LoggerFactory.getLogger(PageUtil.class);
|
|
@Autowired
|
private MessageAccessor messageAccessor;
|
|
/**
|
* 유효성을 체크한 후에 유효하지 않으면 에러를 발생시킨다.
|
* @param pageVo
|
*/
|
public void validatePageVo(PageVo pageVo) {
|
if (pageVo == null) {
|
throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.PAGE_NOT_EXIST_INFO));
|
}
|
|
if (pageVo.getPage() == null || pageVo.getPage() < 0) {
|
if (pageVo.getRelPage() == null || pageVo.getRelPage() < 0
|
|| pageVo.getDownPage() == null || pageVo.getDownPage() < 0) {
|
throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.PAGE_NEGATIVE_OR_NULL));
|
}
|
}
|
|
if (pageVo.getPageSize() == null || pageVo.getPageSize() < 0) {
|
if (pageVo.getRelPageSize() == null || pageVo.getRelPageSize() < 0
|
|| pageVo.getDownPageSize() == null || pageVo.getDownPageSize() < 0) {
|
throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.PAGE_SIZE_NEGATIVE_OR_NULL));
|
}
|
}
|
}
|
|
public Pageable convertPageable(PageVo pageVo) {
|
return PageRequest.of(pageVo.getPage(), pageVo.getPageSize());
|
}
|
|
public Pageable getDefaultPageable() {
|
return PageRequest.of(0, 300);
|
}
|
|
public Pageable getDefaultPageable(int page, int size) {
|
return PageRequest.of(page, size);
|
}
|
|
public PageVo getDefaultPageVo() {
|
return new PageVo(0, 300);
|
}
|
|
public static Pageable applySort(Pageable page, String field, Sort.Direction direction) {
|
|
return PageRequest.of(page.getPageNumber(), page.getPageSize(), new Sort(direction, field));
|
}
|
}
|