From e0c6c5afce3ba7a932db20f3d76a6d89225324d5 Mon Sep 17 00:00:00 2001 From: liuhaocheng Date: Tue, 23 Sep 2025 14:16:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/data/constants/QueryConstants.java | 2 ++ .../base/module/data/module/WebCondition.java | 6 ++++++ .../module/datasource/aop/DataSourceAop.java | 16 +++++++++------- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/constants/QueryConstants.java b/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/constants/QueryConstants.java index 21a38a3..7c3925d 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/constants/QueryConstants.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/constants/QueryConstants.java @@ -20,6 +20,8 @@ public class QueryConstants { public static final int GT = 6; public static final int LTE = 7; public static final int GTE = 8; + public static final int RIGHT_LIKE = 9; + public static final int LEFT_LIKE = 10; public static final String QUERY = "query"; public static final String JOIN = "join"; diff --git a/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/module/WebCondition.java b/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/module/WebCondition.java index 6381d38..36d280a 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/module/WebCondition.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/data/module/WebCondition.java @@ -73,6 +73,12 @@ public class WebCondition { String[] strings = webCondition.value.toString().split(","); return builder.in(webCondition.key, Arrays.asList(strings)); } + case QueryConstants.RIGHT_LIKE: { + return builder.rightLike(webCondition.key, webCondition.value); + } + case QueryConstants.LEFT_LIKE: { + return builder.leftLike(webCondition.key, webCondition.value); + } default: throw new IllegalStateException("Unexpected sign value: " + webCondition.getLogic()); } diff --git a/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/datasource/aop/DataSourceAop.java b/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/datasource/aop/DataSourceAop.java index 3d46fde..5d945bf 100644 --- a/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/datasource/aop/DataSourceAop.java +++ b/hcframe-parent/hcframe-base/src/main/java/com/taixingyiji/base/module/datasource/aop/DataSourceAop.java @@ -52,13 +52,15 @@ public class DataSourceAop { @Before("log()") public void doBefore(JoinPoint joinPoint) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = attributes.getRequest(); - if (isMulti) { - String key = request.getParameter("datasourceKey"); - if (StringUtils.isBlank(key)) { - DBContextHolder.setDataSource(DataUnit.MASTER); - } else { - DBContextHolder.setDataSource(key); + if (attributes != null) { + HttpServletRequest request = attributes.getRequest(); + if (isMulti) { + String key = request.getParameter("datasourceKey"); + if (StringUtils.isBlank(key)) { + DBContextHolder.setDataSource(DataUnit.MASTER); + } else { + DBContextHolder.setDataSource(key); + } } } }