From e2c70d68f8bf4358802eef56b2bdf0cf1f05f748 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Wed, 29 Dec 2021 19:40:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=96=BD=E6=97=A5=E6=9C=9F=20?= =?UTF-8?q?=E5=92=8C=20=E5=9B=9B=E4=B8=AA=E5=A4=9A=E9=80=89=E9=80=82?= =?UTF-8?q?=E7=94=A8=E8=BD=A6=E5=9E=8B=20,=20=E9=80=82=E7=94=A8=E8=AE=A4?= =?UTF-8?q?=E8=AF=81..=20REGEXP=E6=AD=A3=E5=88=99=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=92=8CBETWEEN=E6=97=A5=E6=9C=9F=E8=8C=83=E5=9B=B4=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/utils/util/SarAdvanceSearchUtil.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/SarAdvanceSearchUtil.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/SarAdvanceSearchUtil.java index 811274f5..72b2f6bc 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/utils/util/SarAdvanceSearchUtil.java +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/SarAdvanceSearchUtil.java @@ -95,10 +95,39 @@ public class SarAdvanceSearchUtil { String sql = ""; SarAdvanceSearchVO searchVO=searchVOList.get(i); if (StringUtils.isNotBlank(searchVO.getValue())); - if (i==0){ - sql+=tableName+searchVO.getField()+" " + searchVO.getType() + " " + "concat(concat('%','" +searchVO.getValue() + "'),'%') "; - }else { - sql+="AND"+" "+tableName+searchVO.getField()+" " + searchVO.getType() + " " + "concat(concat('%','" +searchVO.getValue() + "'),'%') "; + + + + switch (searchVO.getType()){ + //多个正则查询 + case "regexp": + case "REGEXP": + if (i==0){ + sql+=tableName+searchVO.getField()+" " + "REGEXP" + " " + "\'" + searchVO.getValue().replaceAll(",","|").replaceAll("\\s*","") + "\'"; + }else { + sql+=" AND "+" "+tableName+searchVO.getField()+" " + "REGEXP" + " " +"\'"+ searchVO.getValue().replaceAll(",","|").replaceAll("\\s*","") + "\'" ; + } + break; + //模糊查询 + case "LIKE": + case "like": + if (i==0){ + sql+=tableName+searchVO.getField()+" " + "LIKE" + " " + "concat(concat('%','" +searchVO.getValue() + "'),'%') "; + }else { + sql+=" AND "+" "+tableName+searchVO.getField()+" " +"LIKE" + " " + "concat(concat('%','" +searchVO.getValue() + "'),'%') "; + } + break; + //日期范围查询 + case "between": + case "BETWEEN": + String[] boundaryArray = searchVO.getValue().split(","); + if (i==0){ + sql+= "DATE_FORMAT("+ tableName+searchVO.getField() + ",'%Y-%m-%d')"+" " + "BETWEEN" + " " +"DATE_FORMAT("+ "\'" + boundaryArray[0].replaceAll("\\s*","") + "\'" +",'%Y-%m-%d')" +" AND "+ "DATE_FORMAT("+ "\'" + boundaryArray[1].replaceAll("\\s*","") + "\'" + ",'%Y-%m-%d')"; + }else { + sql+=" AND "+" "+"DATE_FORMAT("+ tableName+searchVO.getField() + ",'%Y-%m-%d')"+" " + "BETWEEN" + " " +"DATE_FORMAT("+ "\'" + boundaryArray[0].replaceAll("\\s*","") + "\'" + ",'%Y-%m-%d')" +" AND "+ "DATE_FORMAT("+ "\'" + boundaryArray[1].replaceAll("\\s*","") + "\'" + ",'%Y-%m-%d')"; + } + break; + default: } sqlBuilder.append(sql); }