From 4967f0b4fe4a3ddc1b30d0c08a1b031189b09cc3 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Fri, 17 Aug 2018 17:13:11 +0800 Subject: [PATCH] page 查询参数 生成问题 --- src/main/java/com/moral/common/util/ExampleUtil.java | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/moral/common/util/ExampleUtil.java b/src/main/java/com/moral/common/util/ExampleUtil.java index 65f8509..f5f929c 100644 --- a/src/main/java/com/moral/common/util/ExampleUtil.java +++ b/src/main/java/com/moral/common/util/ExampleUtil.java @@ -18,9 +18,13 @@ @Log4j public class ExampleUtil { - private final static String OR_SPLIT = "or\\|"; - private final static String CRITERIA_SPLIT = "\\|\\|\\|"; - private final static String CONDITION_SPLIT = "\\|\\|"; + private final static String SPLIT = "\\|"; + private final static String OR = "_OR"; + private final static String OR_SPLIT = OR+SPLIT; + private final static String CRITERIA = "_CR"; + private final static String CRITERIA_SPLIT = CRITERIA+SPLIT; + private final static String CONDITION = "_CO"; + private final static String CONDITION_SPLIT = CONDITION+SPLIT; private static Map<String, Method> criteriaMethodMap = new ConcurrentHashMap<>(); private static void setOrderByClause(Example example,String orderByClause) throws UnsupportedEncodingException, NoSuchFieldException { orderByClause = URLDecoder.decode(orderByClause,"UTF-8"); @@ -55,7 +59,7 @@ } if(!StringUtils.isNullOrEmpty(params)){ params = URLDecoder.decode(params, "UTF-8"); - if (!StringUtils.isNullOrEmpty(params) && params.startsWith("or|")) { + if (params.startsWith(OR)) { String[] criteria = params.trim().split(OR_SPLIT); for (String criterion : criteria) { // criterion���null���""������ @@ -139,7 +143,16 @@ List<Example.Criteria> criteriaList = example.getOredCriteria(); if(criteriaList!=null&&criteriaList.size()>0){ for(Example.Criteria cri : criteriaList){ - cri.andNotEqualTo("isDelete", Constants.IS_DELETE_TRUE); + boolean isHasIsDelete = false; + for(Example.Criterion con : cri.getCriteria()){ + if( con.getCondition().indexOf("is_delete") >-1) { + isHasIsDelete = true; + break; + } + } + if( !isHasIsDelete) { + cri.andNotEqualTo("isDelete", Constants.IS_DELETE_TRUE); + } } }else { example.or().andNotEqualTo("isDelete",Constants.IS_DELETE_TRUE); -- Gitblit v1.8.0