分页调整获取where条件,针对时间类型以及包含空格的搜索条件做了调整,加入了alias一列用来当作表的别名
This commit is contained in:
@@ -3,8 +3,9 @@
|
||||
*/
|
||||
package com.nis.domain;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
@@ -16,8 +17,8 @@ import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.nis.util.Configurations;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.CookieUtil;
|
||||
import com.nis.util.StringUtil;
|
||||
|
||||
/**
|
||||
* 分页类
|
||||
@@ -50,7 +51,7 @@ public class Page<T> {
|
||||
private String fields;//制定资源的字段
|
||||
|
||||
private String where;
|
||||
|
||||
private String alias;
|
||||
private String funcName = "page"; // 设置点击页码调用的js函数名称,默认为page,在一页有多个分页对象时使用。
|
||||
|
||||
private String funcParam = ""; // 函数的附加参数,第三个参数值。
|
||||
@@ -71,8 +72,20 @@ public class Page<T> {
|
||||
this(request, response, Integer.valueOf(Configurations.getIntProperty("page.pageSize", 30)));
|
||||
|
||||
}
|
||||
|
||||
public Page(HttpServletRequest request, HttpServletResponse response,String alias){
|
||||
|
||||
this(request, response, Integer.valueOf(Configurations.getIntProperty("page.pageSize", 30)),alias);
|
||||
|
||||
}
|
||||
|
||||
public Page(HttpServletRequest request, HttpServletResponse response, int defaultPageSize,String alias){
|
||||
this.setAlias(alias);
|
||||
this.initPage(request, response, defaultPageSize);
|
||||
}
|
||||
public Page(HttpServletRequest request, HttpServletResponse response, int defaultPageSize){
|
||||
this.initPage(request, response, defaultPageSize);
|
||||
}
|
||||
private void initPage(HttpServletRequest request, HttpServletResponse response, int defaultPageSize){
|
||||
try {
|
||||
// 设置页码参数(传递repage参数,来记住页码)
|
||||
String no = request.getParameter("pageNo");
|
||||
@@ -129,7 +142,6 @@ public class Page<T> {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @Title: getWhere
|
||||
@@ -141,14 +153,65 @@ public class Page<T> {
|
||||
* @throws
|
||||
* @date 2016年8月17日 上午9:28:21
|
||||
* @version V1.0
|
||||
* wx:日期格式的数据用日期格式化函数格式化,带空格的数据加上引号
|
||||
*/
|
||||
private String getWhere(HttpServletRequest request) {
|
||||
String format=Constants.SEARCH_DATEFORMAT;
|
||||
SimpleDateFormat sdf=new SimpleDateFormat(format);
|
||||
Map<String, String[]> requestMap = request.getParameterMap();
|
||||
StringBuilder whereBuilder = new StringBuilder(512);
|
||||
for(String paramName : request.getParameterMap().keySet()) {
|
||||
if (paramName.startsWith("search")) {
|
||||
whereBuilder.append(paramName.substring("search_".length()))
|
||||
.append("=").append(requestMap.get(paramName)[0]).append(" and ");
|
||||
if (requestMap.get(paramName)!=null&¶mName.startsWith("search_")&&StringUtils.isNotBlank(requestMap.get(paramName)[0])) {
|
||||
String clomn=paramName.substring("search_".length());
|
||||
String value=requestMap.get(paramName)[0].trim();
|
||||
boolean isDate=false;
|
||||
try {
|
||||
sdf.parse(value);
|
||||
isDate=true;
|
||||
} catch (ParseException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(clomn.endsWith("_start")){
|
||||
clomn=clomn.substring(0,clomn.lastIndexOf("_start"));
|
||||
if(StringUtils.isNotBlank(alias)) whereBuilder.append(alias.trim()+".");
|
||||
whereBuilder.append(clomn).append(">=");
|
||||
if(isDate){
|
||||
whereBuilder.append("date_format('")
|
||||
.append(value).append("','%Y-%m-%d %H:%i:%S')");
|
||||
}else if(value.indexOf(" ")>-1){
|
||||
whereBuilder.append("'").append(requestMap.get(paramName)[0]).append("'");
|
||||
}else{
|
||||
whereBuilder.append(requestMap.get(paramName)[0]);
|
||||
}
|
||||
whereBuilder.append(" and ");
|
||||
}else if(clomn.endsWith("_end")){
|
||||
clomn=clomn.substring(0,clomn.lastIndexOf("_end"));
|
||||
if(StringUtils.isNotBlank(alias)) whereBuilder.append(alias.trim()+".");
|
||||
whereBuilder.append(clomn).append("<=");
|
||||
if(isDate){
|
||||
whereBuilder.append("DATE_FORMAT('")
|
||||
.append(value).append("','%Y-%m-%d %H:%i:%S')");
|
||||
}else if(value.indexOf(" ")>-1){
|
||||
whereBuilder.append("'").append(requestMap.get(paramName)[0]).append("'");
|
||||
}else{
|
||||
whereBuilder.append(requestMap.get(paramName)[0]);
|
||||
}
|
||||
whereBuilder.append(" and ");
|
||||
}else{
|
||||
if(StringUtils.isNotBlank(alias)) whereBuilder.append(alias.trim()+".");
|
||||
whereBuilder.append(clomn).append("=");
|
||||
if(isDate){
|
||||
whereBuilder.append("date_format('")
|
||||
.append(value).append("','%Y-%m-%d %H:%i:%S')");
|
||||
}else if(value.indexOf(" ")>-1){
|
||||
whereBuilder.append("'").append(requestMap.get(paramName)[0]).append("'");
|
||||
}else{
|
||||
whereBuilder.append(requestMap.get(paramName)[0]);
|
||||
}
|
||||
whereBuilder.append(" and ");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if (whereBuilder.length() > 0) {
|
||||
@@ -624,6 +687,22 @@ public class Page<T> {
|
||||
return getPageSize();
|
||||
}
|
||||
|
||||
/**
|
||||
* alias
|
||||
* @return alias
|
||||
*/
|
||||
|
||||
public String getAlias() {
|
||||
return alias;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param alias the alias to set
|
||||
*/
|
||||
public void setAlias(String alias) {
|
||||
this.alias = alias;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 获取 Spring data JPA 分页对象
|
||||
// */
|
||||
|
||||
Reference in New Issue
Block a user