pull/2/head
zxy 5 months ago
parent 96b4e44889
commit 2cb09ddabc

@ -1,4 +1,3 @@
package com.utils; package com.utils;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
@ -9,90 +8,114 @@ import org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
/** /**
* * LinkedHashMap<String, Object>
* SQL
*/ */
public class Query<T> extends LinkedHashMap<String, Object> { public class Query<T> extends LinkedHashMap<String, Object> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* mybatis-plus * mybatis-plus
*/ */
private Page<T> page; private Page<T> page;
/** /**
* * 1
*/ */
private int currPage = 1; private int currPage = 1;
/** /**
* * 10
*/ */
private int limit = 10; private int limit = 10;
/**
* JQPageInfo
*
* @param pageInfo JQPageInfo
*/
public Query(JQPageInfo pageInfo) { public Query(JQPageInfo pageInfo) {
//分页参数 // 处理分页参数
if(pageInfo.getPage()!= null){ if (pageInfo.getPage() != null) {
currPage = pageInfo.getPage(); currPage = pageInfo.getPage();
} }
if(pageInfo.getLimit()!= null){ if (pageInfo.getLimit() != null) {
limit = pageInfo.getLimit(); limit = pageInfo.getLimit();
} }
// 防止SQL注入因为sidx、order是通过拼接SQL实现排序的会有SQL注入风险
//防止SQL注入因为sidx、order是通过拼接SQL实现排序的会有SQL注入风险
String sidx = SQLFilter.sqlInject(pageInfo.getSidx()); String sidx = SQLFilter.sqlInject(pageInfo.getSidx());
String order = SQLFilter.sqlInject(pageInfo.getOrder()); String order = SQLFilter.sqlInject(pageInfo.getOrder());
//mybatis-plus分页 // 创建mybatis-plus分页对象
this.page = new Page<>(currPage, limit); this.page = new Page<>(currPage, limit);
//排序 // 进行排序设置
if(StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)){ if (StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)) {
this.page.setOrderByField(sidx); this.page.setOrderByField(sidx);
this.page.setAsc("ASC".equalsIgnoreCase(order)); this.page.setAsc("ASC".equalsIgnoreCase(order));
} }
} }
/**
public Query(Map<String, Object> params){ * Map
*
* @param params Map
*/
public Query(Map<String, Object> params) {
// 将传入的参数Map中的所有键值对放入当前对象中
this.putAll(params); this.putAll(params);
//分页参数 // 处理分页参数
if(params.get("page") != null){ if (params.get("page") != null) {
currPage = Integer.parseInt((String)params.get("page")); currPage = Integer.parseInt((String) params.get("page"));
} }
if(params.get("limit") != null){ if (params.get("limit") != null) {
limit = Integer.parseInt((String)params.get("limit")); limit = Integer.parseInt((String) params.get("limit"));
} }
// 计算偏移量,并将分页相关参数放入当前对象中
this.put("offset", (currPage - 1) * limit); this.put("offset", (currPage - 1) * limit);
this.put("page", currPage); this.put("page", currPage);
this.put("limit", limit); this.put("limit", limit);
//防止SQL注入因为sidx、order是通过拼接SQL实现排序的会有SQL注入风险 // 防止SQL注入因为sidx、order是通过拼接SQL实现排序的会有SQL注入风险
String sidx = SQLFilter.sqlInject((String)params.get("sidx")); String sidx = SQLFilter.sqlInject((String) params.get("sidx"));
String order = SQLFilter.sqlInject((String)params.get("order")); String order = SQLFilter.sqlInject((String) params.get("order"));
this.put("sidx", sidx); this.put("sidx", sidx);
this.put("order", order); this.put("order", order);
//mybatis-plus分页 // 创建mybatis-plus分页对象
this.page = new Page<>(currPage, limit); this.page = new Page<>(currPage, limit);
//排序 // 进行排序设置
if(StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)){ if (StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)) {
this.page.setOrderByField(sidx); this.page.setOrderByField(sidx);
this.page.setAsc("ASC".equalsIgnoreCase(order)); this.page.setAsc("ASC".equalsIgnoreCase(order));
} }
} }
/**
* mybatis-plus
*
* @return mybatis-plusPage
*/
public Page<T> getPage() { public Page<T> getPage() {
return page; return page;
} }
/**
*
*
* @return
*/
public int getCurrPage() { public int getCurrPage() {
return currPage; return currPage;
} }
/**
*
*
* @return
*/
public int getLimit() { public int getLimit() {
return limit; return limit;
} }
} }
Loading…
Cancel
Save