From 8ea24dd5fb6e1b24d3a7ef62a0060ef516f8f759 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Thu, 24 May 2018 08:58:16 +0800 Subject: [PATCH] 更新 监测点 数据 --- src/main/java/com/moral/common/util/ExampleUtil.java | 38 ++++++++++++++++++++++++++++++++------ 1 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/moral/common/util/ExampleUtil.java b/src/main/java/com/moral/common/util/ExampleUtil.java index d50d02a..1852f44 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,15 +19,42 @@ private final static String CRITERIA_SPLIT = "\\|\\|\\|"; private final static String CONDITION_SPLIT = "\\|\\|"; private static Map<String, Method> criteriaMethodMap = null; + private static void setOrderByClause(Example example,String orderByClause) throws UnsupportedEncodingException, NoSuchFieldException { + orderByClause = URLDecoder.decode(orderByClause,"UTF-8"); + String[] orderBys = orderByClause.split(CRITERIA_SPLIT); + for(String orderBy : orderBys){ + String[] items = orderBy.split(CONDITION_SPLIT); + if(items.length == 2){ + String property = items[0]; + String sort = items[1]; + if(isPropertyOfClass(example.getEntityClass(),property)){ - public static Example generateExample(Class clzz, String params) { - Example example = new Example(clzz); + 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) { + // criterion���null���""������ + if(StringUtils.isNullOrEmpty(criterion)) { continue;}; + Example.Criteria criteriaOfExample = example.or(); if (!StringUtils.isNullOrEmpty(criterion)) { String[] conditions = criterion.trim().split(CRITERIA_SPLIT); for (String condition : conditions) { @@ -41,10 +69,8 @@ if (method != null && isPropertyOfClass(clzz, propertyName)) { List values = new ArrayList<Object>(); if (conditionItems.length > 2) { - //��������������� - Class<?> valutType = new PropertyDescriptor(propertyName, clzz).getPropertyType(); for (int index = 2; index < conditionItems.length; index++) { - values.add(StringUtils.stringToObject4Type(valutType, conditionItems[index])); + values.add(conditionItems[index]); } } invokeMethod(criteriaOfExample,method,propertyName,values); -- Gitblit v1.8.0