diff --git a/src/main/java/com/xly/tool/DynamicToolProvider.java b/src/main/java/com/xly/tool/DynamicToolProvider.java index 5742f5a..e991826 100644 --- a/src/main/java/com/xly/tool/DynamicToolProvider.java +++ b/src/main/java/com/xly/tool/DynamicToolProvider.java @@ -301,57 +301,59 @@ public class DynamicToolProvider implements ToolProvider { } for (String sVaule : addValue) { - List paramRuleDataD = paramRuleDataAllNew.stream() - .filter(d -> d.getBDynamicParam() - && sVaule.equals(d.getSDynamicParam()) - && one.getSParam().equals(d.getSDynamicParamName())) - .collect(Collectors.toList()); - - // 如果不存在,则添加 - if (ObjectUtil.isEmpty(paramRuleDataD)) { - searMap.put("sRuleId", one.getSId()); - searMap.put("sTooId", one.getSParentId()); - searMap.put("sParam", one.getSParam()); - searMap.put("sParamValue", sVaule); - searMap.put("sParamName", one.getSParam()); - searMap.put("argsNew", JSONObject.toJSONString(args)); - searMap.put("argsAll", JSONObject.toJSONString(finalArgsOld)); - - String sSql = one.getSDynamicParamRuleSql(); - List> dynamicParamRuleOne = new ArrayList<>(); - - if (sSql.replaceAll(" ", "").toLowerCase().startsWith("select") - || sSql.replaceAll(" ", "").toLowerCase().startsWith("call")) { - try { - List> selectData = - this.dynamicExeDbService.findSql(searMap, sSql); - if (ObjectUtil.isNotEmpty(selectData)) { - String sData = (ObjectUtil.isNotEmpty(selectData) - && ObjectUtil.isNotEmpty(selectData.get(0).get("sData"))) - ? selectData.get(0).get("sData").toString() - : StrUtil.EMPTY; - if (ObjectUtil.isNotEmpty(sData)) { - dynamicParamRuleOne = JsonUtils.toList(sData, Map.class); + if(ObjectUtil.isNotEmpty(sVaule) && StrUtil.isNotEmpty(sVaule)){ + List paramRuleDataD = paramRuleDataAllNew.stream() + .filter(d -> d.getBDynamicParam() + && sVaule.equals(d.getSDynamicParam()) + && one.getSParam().equals(d.getSDynamicParamName())) + .collect(Collectors.toList()); + + // 如果不存在,则添加 + if (ObjectUtil.isEmpty(paramRuleDataD)) { + searMap.put("sRuleId", one.getSId()); + searMap.put("sTooId", one.getSParentId()); + searMap.put("sParam", one.getSParam()); + searMap.put("sParamValue", sVaule); + searMap.put("sParamName", one.getSParam()); + searMap.put("argsNew", JSONObject.toJSONString(args)); + searMap.put("argsAll", JSONObject.toJSONString(finalArgsOld)); + + String sSql = one.getSDynamicParamRuleSql(); + List> dynamicParamRuleOne = new ArrayList<>(); + + if (sSql.replaceAll(" ", "").toLowerCase().startsWith("select") + || sSql.replaceAll(" ", "").toLowerCase().startsWith("call")) { + try { + List> selectData = + this.dynamicExeDbService.findSql(searMap, sSql); + if (ObjectUtil.isNotEmpty(selectData)) { + String sData = (ObjectUtil.isNotEmpty(selectData) + && ObjectUtil.isNotEmpty(selectData.get(0).get("sData"))) + ? selectData.get(0).get("sData").toString() + : StrUtil.EMPTY; + if (ObjectUtil.isNotEmpty(sData)) { + dynamicParamRuleOne = JsonUtils.toList(sData, Map.class); + } } + } catch (Exception e) { + log.error("执行动态参数SQL失败", e); } - } catch (Exception e) { - log.error("执行动态参数SQL失败", e); } - } - if (ObjectUtil.isNotEmpty(dynamicParamRuleOne)) { - for (Map dynamicParamRuleData : dynamicParamRuleOne) { - ParamRule paramRule = BeanUtil.toBean(dynamicParamRuleData, ParamRule.class); - if (!RuleCode.CONST.getCode().equals(paramRule.getSRule()) - && ObjectUtil.isNotEmpty(paramRule.getSParamConfig()) - && JSONUtil.isTypeJSON(paramRule.getSParamConfig())) { - try { - getConstMeg(paramRule); - } catch (Exception e) { - log.error("获取常量配置失败", e); + if (ObjectUtil.isNotEmpty(dynamicParamRuleOne)) { + for (Map dynamicParamRuleData : dynamicParamRuleOne) { + ParamRule paramRule = BeanUtil.toBean(dynamicParamRuleData, ParamRule.class); + if (!RuleCode.CONST.getCode().equals(paramRule.getSRule()) + && ObjectUtil.isNotEmpty(paramRule.getSParamConfig()) + && JSONUtil.isTypeJSON(paramRule.getSParamConfig())) { + try { + getConstMeg(paramRule); + } catch (Exception e) { + log.error("获取常量配置失败", e); + } } + dynamicParamRule.add(paramRule); } - dynamicParamRule.add(paramRule); } } }