package com.utils; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.plugins.Page; /** * 查询参数 */ public class Query extends LinkedHashMap { private static final long serialVersionUID = 1L; /** * mybatis-plus分页参数 */ private Page page; /** * 当前页码 */ private int currPage = 1; /** * 每页条数 */ private int limit = 10; public Query(JQPageInfo pageInfo) { //分页参数 if(pageInfo.getPage()!= null){ currPage = pageInfo.getPage(); } if(pageInfo.getLimit()!= null){ limit = pageInfo.getLimit(); } //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险) String sidx = SQLFilter.sqlInject(pageInfo.getSidx()); String order = SQLFilter.sqlInject(pageInfo.getOrder()); //mybatis-plus分页 this.page = new Page<>(currPage, limit); //排序 if(StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)){ this.page.setOrderByField(sidx); this.page.setAsc("ASC".equalsIgnoreCase(order)); } } public Query(Map params){ this.putAll(params); //分页参数 if(params.get("page") != null){ currPage = Integer.parseInt((String)params.get("page")); } if(params.get("limit") != null){ limit = Integer.parseInt((String)params.get("limit")); } this.put("offset", (currPage - 1) * limit); this.put("page", currPage); this.put("limit", limit); //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险) String sidx = SQLFilter.sqlInject((String)params.get("sidx")); String order = SQLFilter.sqlInject((String)params.get("order")); this.put("sidx", sidx); this.put("order", order); //mybatis-plus分页 this.page = new Page<>(currPage, limit); //排序 if(StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)){ this.page.setOrderByField(sidx); this.page.setAsc("ASC".equalsIgnoreCase(order)); } } public Page getPage() { return page; } public int getCurrPage() { return currPage; } public int getLimit() { return limit; } }