From 57ddbeef3f037a056e89fb39a32dc7cf988b7b21 Mon Sep 17 00:00:00 2001 From: Mincycle <805269940@qq.com> Date: Thu, 14 Jul 2022 02:20:19 +0000 Subject: [PATCH] =?UTF-8?q?update=20ruoyi-framework/src/main/java/com/ruoy?= =?UTF-8?q?i/framework/handler/PlusDataPermissionHandler.java.=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=E4=BC=98=E5=8C=96=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=82=B9=EF=BC=9A=E6=94=AF=E6=8C=81=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=8A=A0=E8=BD=BD=E5=A4=9A=E4=B8=AADataColum?= =?UTF-8?q?n,=E6=9C=AA=E5=8C=B9=E9=85=8D=E4=B8=8A=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=97=B6,=E8=8B=A5elsesql=E6=98=AF=E7=A9=BA?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E4=B8=8D=E4=BC=9A=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?join=E5=AF=BC=E8=87=B4=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E9=94=99=E8=AF=AF=E3=80=82=E6=80=BB=E4=BD=93?= =?UTF-8?q?=E8=AE=A9=E6=9D=83=E9=99=90=E6=9B=B4=E7=81=B5=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/handler/PlusDataPermissionHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java index 7ecc12a3f..4a4d7137b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/PlusDataPermissionHandler.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.ConcurrentHashSet; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.ruoyi.common.annotation.DataColumn; import com.ruoyi.common.annotation.DataPermission; import com.ruoyi.common.core.domain.dto.RoleDTO; @@ -123,6 +124,7 @@ public class PlusDataPermissionHandler { return ""; } boolean isSuccess = false; + boolean needParser = false; for (DataColumn dataColumn : dataColumns) { // 不包含 key 变量 则不处理 if (!StringUtils.contains(type.getSqlTemplate(), "#" + dataColumn.key())) { @@ -131,13 +133,19 @@ public class PlusDataPermissionHandler { // 设置注解变量 key 为表达式变量 value 为变量值 context.setVariable(dataColumn.key(), dataColumn.value()); + needParser = true; + + } + + if (needParser) { // 解析sql模板并填充 String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class); sqlString.append(joinStr).append(sql); isSuccess = true; } + // 未处理成功则填充兜底方案 - if (!isSuccess) { + if (!isSuccess && StrUtil.isNotBlank(type.getElseSql()) ) { sqlString.append(joinStr).append(type.getElseSql()); } }