Merge pull request #7436 from dataease/pr@dev@fix_filter

fix: 视图插件支持与或过滤器
This commit is contained in:
Junjun 2023-12-28 11:49:54 +08:00 committed by GitHub
commit 7a1c4c8efd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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++) {