package com.zjzc.commons.db.mysql;
import org.apache.commons.lang3.StringUtils;
import com.zjzc.commons.lib.enums.RetConstantsEnum;
import com.zjzc.commons.lib.exception.ValidateException;
import com.zjzc.commons.lib.util.DataValidatorUtils;
/**
*
- @author Orc
*/
public class PageRequest {
public static final String ORDER_ASC = "asc";
public static final String ORDER_DESC = "desc";
// 默认起始行
private static final int DEFAULT_START_LINE = 0;
//默认查询页
private static final int DEFAULT_PAGE_NUM = 1;
// 默认页大小
private static final int DEFAULT_PAGE_SIZE = 10;
// 起始行
private int limitBegin;
// 页大小
private int pageSize;
private int pageNum;
private String orderField;
private String orderWay;
public PageRequest() {
limitBegin = DEFAULT_START_LINE;
pageNum = DEFAULT_PAGE_NUM;
pageSize = DEFAULT_PAGE_SIZE;
orderWay = ORDER_ASC;
}
public PageRequest(int pageNum, int pageSize) {
if (pageNum < 1) {
this.pageNum = 1;
} else {
this.pageNum = pageNum;
}
if (pageSize < 1) {
this.pageSize = DEFAULT_PAGE_SIZE;
} else {
this.pageSize = pageSize;
}
setLimitBegin((this.getPageNum() - 1) * this.getPageSize());
}
/**
*
* @param pageNum
* @param pageSize
* @param orderField
* @param orderWay
*/
public PageRequest(int pageNum, int pageSize, String orderField,
String orderWay) {
if (pageNum < 1) {
this.pageNum = 1;
} else {
this.pageNum = pageNum;
}
if (pageSize < 1) {
this.pageSize = DEFAULT_PAGE_SIZE;
} else {
this.pageSize = pageSize;
}
setLimitBegin((this.getPageNum() - 1) * this.getPageSize());
setOrderField(orderField);
setOrderWay(orderWay);
}
public int getLimitBegin() {
return limitBegin;
}
public void setLimitBegin(int limitBegin) {
this.limitBegin = limitBegin;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
if (pageSize < 1) {
this.pageSize = DEFAULT_PAGE_SIZE;
} else {
this.pageSize = pageSize;
}
setLimitBegin((this.getPageNum() - 1) * this.getPageSize());
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
if (pageNum < 1) {
this.pageNum = 1;
} else {
this.pageNum = pageNum;
}
setLimitBegin((this.getPageNum() - 1) * this.getPageSize());
}
public String getOrderField() {
return orderField;
}
/**
* sql 注入临时解决方案,
* ZJZCValidator.VALIDSTR 验证方式相同
* @param str
*/
private void check(String str){
if(StringUtils.isNotBlank(str)){
if (!DataValidatorUtils.isValidStr(str)) {
throw new ValidateException(RetConstantsEnum.PARAMS_ERROR.getCode(),
str + "格式不正确,请检查!");
}
}
}
public void setOrderField(String orderField) {
check(orderField);
this.orderField = orderField;
}
public String getOrderWay() {
return orderWay;
}
public void setOrderWay(String orderWay) {
check(orderWay);
this.orderWay = orderWay;
}
}