package cc.mrbird.febs.common.utils;
|
|
import cc.mrbird.febs.common.entity.FebsConstant;
|
import cc.mrbird.febs.common.entity.QueryRequest;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import org.apache.commons.lang3.StringUtils;
|
|
/**
|
* 处理排序工具类
|
*
|
* @author MrBird
|
*/
|
public class SortUtil {
|
/**
|
* 处理排序(分页情况下) for mybatis-plus
|
*
|
* @param request QueryRequest
|
* @param page Page
|
* @param defaultSort 默认排序的字段
|
* @param defaultOrder 默认排序规则
|
* @param camelToUnderscore 是否开启驼峰转下划线
|
*/
|
public static void handlePageSort(QueryRequest request, Page<?> page, String defaultSort, String defaultOrder, boolean camelToUnderscore) {
|
page.setCurrent(request.getPageNum());
|
page.setSize(request.getPageSize());
|
String sortField = request.getField();
|
if (camelToUnderscore) {
|
sortField = FebsUtil.camelToUnderscore(sortField);
|
defaultSort = FebsUtil.camelToUnderscore(defaultSort);
|
}
|
if (StringUtils.isNotBlank(request.getField())
|
&& StringUtils.isNotBlank(request.getOrder())
|
&& !StringUtils.equalsIgnoreCase(request.getField(), "null")
|
&& !StringUtils.equalsIgnoreCase(request.getOrder(), "null")) {
|
if (StringUtils.equals(request.getOrder(), FebsConstant.ORDER_DESC)) {
|
page.addOrder(OrderItem.desc(sortField));
|
} else {
|
page.addOrder(OrderItem.asc(sortField));
|
}
|
} else {
|
if (StringUtils.isNotBlank(defaultSort)) {
|
if (StringUtils.equals(defaultOrder, FebsConstant.ORDER_DESC)) {
|
page.addOrder(OrderItem.desc(defaultSort));
|
} else {
|
page.addOrder(OrderItem.asc(defaultSort));
|
}
|
}
|
}
|
}
|
|
/**
|
* 处理排序 for mybatis-plus
|
*
|
* @param request QueryRequest
|
* @param page Page
|
*/
|
public static void handlePageSort(QueryRequest request, Page<?> page) {
|
handlePageSort(request, page, null, null, false);
|
}
|
|
/**
|
* 处理排序 for mybatis-plus
|
*
|
* @param request QueryRequest
|
* @param page Page
|
* @param camelToUnderscore 是否开启驼峰转下划线
|
*/
|
public static void handlePageSort(QueryRequest request, Page<?> page, boolean camelToUnderscore) {
|
handlePageSort(request, page, null, null, camelToUnderscore);
|
}
|
|
/**
|
* 处理排序 for mybatis-plus
|
*
|
* @param request QueryRequest
|
* @param wrapper wrapper
|
* @param defaultSort 默认排序的字段
|
* @param defaultOrder 默认排序规则
|
* @param camelToUnderscore 是否开启驼峰转下划线
|
*/
|
public static void handleWrapperSort(QueryRequest request, QueryWrapper<?> wrapper, String defaultSort, String defaultOrder, boolean camelToUnderscore) {
|
String sortField = request.getField();
|
if (camelToUnderscore) {
|
sortField = FebsUtil.camelToUnderscore(sortField);
|
defaultSort = FebsUtil.camelToUnderscore(defaultSort);
|
}
|
if (StringUtils.isNotBlank(request.getField())
|
&& StringUtils.isNotBlank(request.getOrder())
|
&& !StringUtils.equalsIgnoreCase(request.getField(), "null")
|
&& !StringUtils.equalsIgnoreCase(request.getOrder(), "null")) {
|
if (StringUtils.equals(request.getOrder(), FebsConstant.ORDER_DESC)) {
|
wrapper.orderByDesc(sortField);
|
} else {
|
wrapper.orderByAsc(sortField);
|
}
|
} else {
|
if (StringUtils.isNotBlank(defaultSort)) {
|
if (StringUtils.equals(defaultOrder, FebsConstant.ORDER_DESC)) {
|
wrapper.orderByDesc(defaultSort);
|
} else {
|
wrapper.orderByAsc(defaultSort);
|
}
|
}
|
}
|
}
|
|
/**
|
* 处理排序 for mybatis-plus
|
*
|
* @param request QueryRequest
|
* @param wrapper wrapper
|
*/
|
public static void handleWrapperSort(QueryRequest request, QueryWrapper<?> wrapper) {
|
handleWrapperSort(request, wrapper, null, null, false);
|
}
|
|
/**
|
* 处理排序 for mybatis-plus
|
*
|
* @param request QueryRequest
|
* @param wrapper wrapper
|
* @param camelToUnderscore 是否开启驼峰转下划线
|
*/
|
public static void handleWrapperSort(QueryRequest request, QueryWrapper<?> wrapper, boolean camelToUnderscore) {
|
handleWrapperSort(request, wrapper, null, null, camelToUnderscore);
|
}
|
}
|