From e1f1f10d42e351a690d4195ad03786a23629cfc9 Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 28 Dec 2023 11:49:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=86=E5=9B=BE=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=8E=E6=88=96=E8=BF=87=E6=BB=A4=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ViewPluginBaseServiceImpl.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java b/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java index d08c15ea22..1eb7390c9b 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java @@ -90,10 +90,10 @@ public class ViewPluginBaseServiceImpl implements ViewPluginBaseService { SQLObj sqlObj = BeanUtils.copyBean(SQLObj.builder().build(), pluginViewSQL); FilterTreeObj filters = gson.fromJson(gson.toJson(obj), FilterTreeObj.class); logger.info("filters:" + gson.toJson(filters)); - Object o1 = execProviderMethod(queryProvider, methodName, sqlObj, filters); + Object o1 = execProviderSuperMethod(queryProvider, methodName, sqlObj, filters); logger.info("o1:" + (String) o1); Object o; - if ((o = execProviderMethod(queryProvider, methodName, sqlObj, filters)) != null) { + if ((o = execProviderSuperMethod(queryProvider, methodName, sqlObj, filters)) != null) { logger.info("customWhereString:" + o); return (String) o; } @@ -231,6 +231,18 @@ public class ViewPluginBaseServiceImpl implements ViewPluginBaseService { return null; } + private Object execProviderSuperMethod(QueryProvider queryProvider, String methodName, Object... args) { + Method[] declaredMethods = queryProvider.getClass().getMethods(); + for (int i = 0; i < declaredMethods.length; i++) { + Method method = declaredMethods[i]; + if (StringUtils.equals(method.getName(), methodName)) { + method.setAccessible(true); + return ReflectUtil.invoke(queryProvider, method, args); + } + } + return null; + } + private Object execProviderMethod(QueryProvider queryProvider, String methodName, Object... args) { Method[] declaredMethods = queryProvider.getClass().getDeclaredMethods(); for (int i = 0; i < declaredMethods.length; i++) {