package com.chuanghai.ihotel.common.utils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; /** * @Author: codingliang * @Description: 分页参数设置 * @Date: 2021-04-29 12:51 * @Version: V1.0 **/ public class MyQuery { public IPage getPage(PageParam params) { return this.getPage(params, null, false); } public IPage getPage(PageParam params, String defaultOrderField, boolean isAsc) { //分页对象 Page page = new Page<>(params.getCurPage(), params.getPageSize()); //排序字段 //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险) String orderField = SQLFilter.sqlInject(params.getOrderField()); String order = params.getOrder(); //前端字段排序 if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){ if("asc".equalsIgnoreCase(order)) { return page.addOrder(OrderItem.asc(orderField)); }else { return page.addOrder(OrderItem.desc(orderField)); } } // 没有排序字段,则不排序 if(StringUtils.isEmpty(defaultOrderField)){ return page; } //默认排序 if(isAsc) { page.addOrder(OrderItem.asc(defaultOrderField)); }else { page.addOrder(OrderItem.desc(defaultOrderField)); } return page; } }