From 46a07a42e55dafeb5475c205be24a1760bd5d6b7 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Fri, 20 Oct 2023 14:08:35 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=96=87=E6=A1=A3=E6=8B=86=E5=88=86):=20?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=AD=97=E6=AE=B5=E5=A4=9A=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E8=8C=83=E5=9B=B4=E6=9F=A5=E8=AF=A2=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/DocumentSplitCommon.java | 10 ++++-- .../handler/impl/DateManyConditionImpl.java | 33 ++++++++++--------- .../impl/DocumentSplitServiceImpl.java | 4 +-- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java index 9fb9b580..08551bf2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/common/DocumentSplitCommon.java @@ -25,13 +25,17 @@ public class DocumentSplitCommon { */ public static final String DATE_FORMAT_END = " , '%Y-%m-%d') "; /** - * 模糊匹配 + * between */ - public static final String CONCAT_LIKE_BEGIN = " concat('%', ' "; + public static final String BETWEEN = "between "; /** * 模糊匹配 */ - public static final String CONCAT_LIKE_END = " ', '%') "; + public static final String CONCAT_LIKE_BEGIN = " concat('%', '"; + /** + * 模糊匹配 + */ + public static final String CONCAT_LIKE_END = "', '%') "; /** * and */ diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/DateManyConditionImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/DateManyConditionImpl.java index 728f05d4..30e694a6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/DateManyConditionImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/DateManyConditionImpl.java @@ -21,27 +21,30 @@ public class DateManyConditionImpl extends AbstractConditionBase { public String buildCondition(String fieldName, String value){ // 多日期查询 String substringBegin = "SUBSTRING_INDEX("; - String substringEnd = ", ',', 1)"; + String substringEndFirst = ", ',', 1)"; + String substringEndLast = ", ',', -1)"; String dateMany = DocumentSplitCommon.AND; if (value.contains(",")) { // 范围查询 String[] split = value.split(","); - dateMany += "(("; + dateMany += "("; String startDate = DocumentSplitCommon.DATE_FORMAT_BEGIN + "'" + split[0] + "'" + DocumentSplitCommon.DATE_FORMAT_END; String endDate = DocumentSplitCommon.DATE_FORMAT_BEGIN + "'" + split[1] + "'" + DocumentSplitCommon.DATE_FORMAT_END; - dateMany += - DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEnd + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.GT + startDate + - DocumentSplitCommon.AND + - DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEnd + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.LT + endDate + ")" + - DocumentSplitCommon.OR + "(" + - DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEnd + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.GT + startDate + - DocumentSplitCommon.AND + - DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEnd + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.LT + endDate + ")" + - DocumentSplitCommon.OR + "(" + - DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + ", ',', -1)" + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.GT + startDate + - DocumentSplitCommon.AND + - DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + ", ',', -1)" + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.LT + endDate + "))"; - + dateMany += "(" + + DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEndFirst + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.BETWEEN + startDate + DocumentSplitCommon.AND + endDate + + ")" + + DocumentSplitCommon.OR + + "(" + + DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEndLast + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.BETWEEN + startDate + DocumentSplitCommon.AND + endDate + + ")" + + DocumentSplitCommon.OR + + "(" + + startDate + DocumentSplitCommon.BETWEEN + DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEndFirst + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.AND + DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEndLast + DocumentSplitCommon.DATE_FORMAT_END + + ")" + + DocumentSplitCommon.OR + + "(" + + endDate + DocumentSplitCommon.BETWEEN + DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEndFirst + DocumentSplitCommon.DATE_FORMAT_END + DocumentSplitCommon.AND + DocumentSplitCommon.DATE_FORMAT_BEGIN + substringBegin + fieldName + substringEndLast + DocumentSplitCommon.DATE_FORMAT_END + + ")" + ")"; } else { dateMany += fieldName + DocumentSplitCommon.LIKE + DocumentSplitCommon.CONCAT_LIKE_BEGIN + value + DocumentSplitCommon.CONCAT_LIKE_END; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index cdd1e5b6..7e153b3f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -960,7 +960,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { Optional lawsTag = fieldListCondition.stream().filter(o -> k.equals(o.getDbFieldName())).findFirst(); lawsTag.ifPresent(l -> { // 构建查询条件 (工厂 + 策略 设计模式) - String sqlCondition = ConditionMapFactory.getInvokeStrategy(l.getDbFieldName()).buildCondition(l.getDbFieldName(), (String) v); + String sqlCondition = ConditionMapFactory.getInvokeStrategy(l.getFieldShowType()).buildCondition(l.getDbFieldName(), (String) v); selectCondition.append(sqlCondition); }); }); @@ -1035,7 +1035,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { // 拆分状态 queryWrapper.eq(StringUtils.isNotBlank(documentSplitInfo.getSplitStatus()), "split_status", documentSplitInfo.getSplitStatus()); // 编辑人 - queryWrapper.eq(StringUtils.isNotBlank(documentSplitInfo.getAuthor()), "username", documentSplitInfo.getAuthor()); + queryWrapper.like(StringUtils.isNotBlank(documentSplitInfo.getAuthor()), "username", documentSplitInfo.getAuthor()); // 发布前id if (StringUtils.isNotBlank(documentSplitInfo.getPublishBeforeId())){ queryWrapper.eq("publish_before_id", documentSplitInfo.getPublishBeforeId());