From 34f868b21bf8a680fdc6a29583e5ffbfb54b3162 Mon Sep 17 00:00:00 2001 From: andywang <1347387425@qq.com> Date: Wed, 10 Aug 2022 14:25:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E5=88=99=E5=91=BD=E4=B8=AD=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/common/runner/SessionData.java | 1 + .../guiderule/impl/RuleServiceImpl.java | 5 +---- .../strategyout/StrategyOutputService.java | 2 ++ .../impl/StrategyOutputServiceImpl.java | 8 +++++++ .../riskengine/runner/api/RiskEngineApi.java | 1 + .../runner/business/DecisionApiBizData.java | 1 + .../enginex/runner/node/impl/RuleSetNode.java | 21 +++++++++++++------ 7 files changed, 29 insertions(+), 10 deletions(-) diff --git a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/common/runner/SessionData.java b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/common/runner/SessionData.java index 1fd2b8e..0dd150c 100644 --- a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/common/runner/SessionData.java +++ b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/common/runner/SessionData.java @@ -12,4 +12,5 @@ public class SessionData { private Long organId; // 组织id private Long engineId; // 引擎id private Integer reqType;//请求类型 + private Integer ruleHitRspConfig; // 规则命中返回配置,默认1(0:未命中不返回,1:未命中返回) } diff --git a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/guiderule/impl/RuleServiceImpl.java b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/guiderule/impl/RuleServiceImpl.java index e88a8c0..79fb744 100644 --- a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/guiderule/impl/RuleServiceImpl.java +++ b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/guiderule/impl/RuleServiceImpl.java @@ -272,10 +272,7 @@ public class RuleServiceImpl extends ServiceImpl imple @Override public List setComplexRuleOutput(Long versionId, Map temp, Map input, String outType) { - List jsonObjectList = outputService.setOutput(new StrategyOutput(versionId, StrategyType.COMPLEX_RULE,outType), temp); -// for (JSONObject jsonObject : jsonObjectList) { -// input.putAll(jsonObject); -// } + List jsonObjectList = outputService.setOutput(new StrategyOutput(versionId, StrategyType.COMPLEX_RULE,outType), input, temp); return jsonObjectList; } diff --git a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/StrategyOutputService.java b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/StrategyOutputService.java index 29f2f70..895db9e 100644 --- a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/StrategyOutputService.java +++ b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/StrategyOutputService.java @@ -24,5 +24,7 @@ public interface StrategyOutputService extends IService { List setOutput(StrategyOutput entity, Map input); + List setOutput(StrategyOutput entity, Map input, Map temp); + boolean judgeOutCondition(String condition,Map input); } diff --git a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/impl/StrategyOutputServiceImpl.java b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/impl/StrategyOutputServiceImpl.java index 9bc00d8..d4b8aad 100644 --- a/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/impl/StrategyOutputServiceImpl.java +++ b/ddp/ddp-common/ddp-service/src/main/java/com/fibo/ddp/common/service/strategyx/strategyout/impl/StrategyOutputServiceImpl.java @@ -130,6 +130,11 @@ public class StrategyOutputServiceImpl extends ServiceImpl setOutput(StrategyOutput entity, Map input) { + return setOutput(entity, input, null); + } + + @Override + public List setOutput(StrategyOutput entity, Map input, Map temp) { List strategyOutputList = this.queryByTactics(entity); List jsonList = new ArrayList<>(); if (strategyOutputList != null && strategyOutputList.size() > 0) { @@ -161,6 +166,9 @@ public class StrategyOutputServiceImpl extends ServiceImpl fields; // 指标字段键值对 + private Integer ruleHitRspConfig; // 规则命中返回配置(0:未命中不返回,1:未命中返回) } diff --git a/ddp/ddp-enginex/runner-node/src/main/java/com/fibo/ddp/enginex/runner/node/impl/RuleSetNode.java b/ddp/ddp-enginex/runner-node/src/main/java/com/fibo/ddp/enginex/runner/node/impl/RuleSetNode.java index db0b4cf..bd00bf5 100644 --- a/ddp/ddp-enginex/runner-node/src/main/java/com/fibo/ddp/enginex/runner/node/impl/RuleSetNode.java +++ b/ddp/ddp-enginex/runner-node/src/main/java/com/fibo/ddp/enginex/runner/node/impl/RuleSetNode.java @@ -12,6 +12,8 @@ import com.fibo.ddp.common.model.strategyx.guiderule.vo.RuleBlockVo; import com.fibo.ddp.common.model.strategyx.guiderule.vo.RuleConditionVo; import com.fibo.ddp.common.model.strategyx.guiderule.vo.RuleVersionVo; import com.fibo.ddp.common.model.strategyx.scriptrule.RuleScriptVersion; +import com.fibo.ddp.common.service.common.runner.RunnerSessionManager; +import com.fibo.ddp.common.service.common.runner.SessionData; import com.fibo.ddp.common.service.datax.datamanage.FieldService; import com.fibo.ddp.common.service.datax.runner.CommonService; import com.fibo.ddp.common.service.datax.runner.ExecuteUtils; @@ -346,12 +348,16 @@ public class RuleSetNode implements EngineRunnerNode { } String resultFieldEn = hitRuleBlock.getResultFieldEn(); + String outputFieldEn = hitRuleBlock.getResultFieldEn(); if (resultFieldEn == null || "".equals(resultFieldEn)) { resultFieldEn = "rule_" + rule.getId() + "_" + ruleVersion.getId() + "_" + hitRuleBlock.getId() + "_hitResult"; + outputFieldEn = "ruleResult"; } String scoreFieldEn = hitRuleBlock.getScoreFieldEn(); + String outputScoreEn = hitRuleBlock.getScoreFieldEn(); if (StringUtils.isBlank(scoreFieldEn)) { scoreFieldEn = "rule_" + rule.getId() + "_" + ruleVersion.getId() + "_" + hitRuleBlock.getId() + "_score"; + outputScoreEn = "ruleScore"; } input.put(resultFieldEn, "未命中"); //根据执行的最终结果处理此规则输出内容 @@ -361,27 +367,30 @@ public class RuleSetNode implements EngineRunnerNode { ruleMap.put("ruleResult", "命中"); ruleMap.put("ruleScore", hitRuleBlock.getScore()); JSONObject scoreJson = new JSONObject(); - resultJson.put(resultFieldEn, "命中"); + resultJson.put(outputFieldEn, "命中"); fieldList.add(resultJson); -// if (StringUtils.isNotBlank(ruleVersion.getScoreFieldEn())) { - scoreJson.put(scoreFieldEn, hitRuleBlock.getScore()); + scoreJson.put(outputScoreEn, hitRuleBlock.getScore()); fieldList.add(scoreJson); input.put(scoreFieldEn, hitRuleBlock.getScore()); -// } input.put(resultFieldEn, "命中"); //处理此规则需要输出的内容 fieldList.addAll(ruleService.setComplexRuleOutput(hitRuleBlock.getId(), temp, input, StrategyType.OutType.SUCCESS_OUT)); ruleMap.put("fieldList", fieldList); hitFlag = true; + ruleResultList.add(ruleMap); } else { - resultJson.put(resultFieldEn, "未命中"); + resultJson.put(outputFieldEn, "未命中"); ruleMap.put("ruleScore", 0); input.put(scoreFieldEn, 0); fieldList.add(resultJson); fieldList.addAll(ruleService.setComplexRuleOutput(hitRuleBlock.getId(), temp, input, StrategyType.OutType.FAIL_OUT)); ruleMap.put("fieldList", fieldList); + SessionData sessionData = RunnerSessionManager.getSession(); + if(sessionData.getRuleHitRspConfig() == null || sessionData.getRuleHitRspConfig() == 1){ + ruleResultList.add(ruleMap); + } } - ruleResultList.add(ruleMap); + return hitFlag; }