From aa6c487c0eccd86311489e8a0ed641618e5b9105 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Thu, 04 Jan 2018 16:17:41 +0800
Subject: [PATCH] 组织模块
---
src/main/java/com/moral/common/util/ExampleUtil.java | 32 ++++++++++++++++++++++++++++----
1 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/moral/common/util/ExampleUtil.java b/src/main/java/com/moral/common/util/ExampleUtil.java
index 3fe825c..f395cba 100644
--- a/src/main/java/com/moral/common/util/ExampleUtil.java
+++ b/src/main/java/com/moral/common/util/ExampleUtil.java
@@ -1,5 +1,6 @@
package com.moral.common.util;
+import com.moral.common.bean.PageBean;
import lombok.extern.log4j.Log4j;
import tk.mybatis.mapper.entity.Example;
import java.beans.PropertyDescriptor;
@@ -18,16 +19,35 @@
private final static String CRITERIA_SPLIT = "\\|\\|\\|";
private final static String CONDITION_SPLIT = "\\|\\|";
private static Map<String, Method> criteriaMethodMap = null;
-
- public static Example generateExample(Class clzz, String params) {
- Example example = new Example(clzz);
+ private static void setOrderByClause(Example example,String orderByClause) throws UnsupportedEncodingException {
+ orderByClause = URLDecoder.decode(orderByClause,"UTF-8");
+ String[] orderBys = orderByClause.split(CRITERIA_SPLIT);
+ for(String orderBy : orderBys){
+ String[] items = orderBy.split(CONDITION_SPLIT);
+ String property = items[0];
+ String sort = items[1];
+ if("asc".equals(sort)){
+ example.orderBy(property).asc();
+ }else{
+ example.orderBy(property).desc();
+ }
+ }
+ }
+ public static Example generateExample(Class clzz, PageBean page) {
+ Example example = null;
try {
+ String params = page.getQueryParams();
+ String orderByClause = page.getOrderByClause();
+ example = new Example(clzz);
+ if(!StringUtils.isNullOrEmpty(orderByClause)){
+ setOrderByClause(example,orderByClause);
+ }
if(StringUtils.isNullOrEmpty(params)){ return example;}
params = URLDecoder.decode(params, "UTF-8");
if (!StringUtils.isNullOrEmpty(params) && params.startsWith("or|")) {
String[] criteria = params.trim().split(OR_SPLIT);
- Example.Criteria criteriaOfExample = example.or();
for (String criterion : criteria) {
+ Example.Criteria criteriaOfExample = null;
if (!StringUtils.isNullOrEmpty(criterion)) {
String[] conditions = criterion.trim().split(CRITERIA_SPLIT);
for (String condition : conditions) {
@@ -46,6 +66,10 @@
values.add(conditionItems[index]);
}
}
+ //��������������������������������� or ���������
+ if(criteriaOfExample == null){
+ criteriaOfExample = example.or();
+ }
invokeMethod(criteriaOfExample,method,propertyName,values);
}
--
Gitblit v1.8.0