From 73612588073eac17d4d86b16b0d748dcb51392f5 Mon Sep 17 00:00:00 2001 From: icanci Date: Sun, 13 Nov 2022 14:20:07 +0800 Subject: [PATCH 1/5] basedata debug --- .../biz/service/impl/BaseDataServiceImpl.java | 20 +++++++++++++++++-- .../controller/config/BaseDataController.java | 1 + .../script/enums/ResultTypeMapEnum.java | 4 ++-- .../script/enums/ScriptTypeFactoryEnum.java | 2 +- .../test/RecScriptEngineManagerTest.java | 2 +- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java index 8b590ad..37bb72f 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java @@ -5,8 +5,12 @@ import cn.icanci.rec.admin.biz.service.BaseDataService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.admin.dal.mongodb.daointerface.BaseDataDAO; import cn.icanci.rec.admin.dal.mongodb.dateobject.BaseDataDO; +import cn.icanci.rec.common.enums.ResultTypeEnum; import cn.icanci.rec.common.model.TextValue; import cn.icanci.rec.common.model.config.BaseDataVO; +import cn.icanci.rec.engine.script.RecScriptEngine; +import cn.icanci.rec.engine.script.context.RecScriptEngineContext; +import cn.icanci.rec.engine.script.enums.ResultTypeMapEnum; import java.util.List; @@ -24,9 +28,11 @@ import com.google.common.collect.Lists; @Service public class BaseDataServiceImpl implements BaseDataService { @Resource - private BaseDataDAO baseDataDAO; + private BaseDataDAO baseDataDAO; @Resource - private BaseDataMapper baseDataMapper; + private BaseDataMapper baseDataMapper; + @Resource + private RecScriptEngine recScriptEngine; @Override public List queryAll() { @@ -80,6 +86,16 @@ public class BaseDataServiceImpl implements BaseDataService { @Override public void debug(BaseDataVO baseData, String scriptContentTest) { + RecScriptEngineContext context; + ResultTypeEnum resultType = baseData.getResultType(); + if (resultType != null) { + Class clazz = ResultTypeMapEnum.getClassByResultType(resultType); + context = recScriptEngine.eval(baseData.getScriptType(), scriptContentTest, clazz); + } else { + context = recScriptEngine.eval(baseData.getScriptType(), scriptContentTest); + } + Object realRetVal = context.getRealRetVal(); + System.out.println(realRetVal); // TODO } } diff --git a/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java b/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java index 8c01418..8472d56 100644 --- a/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java +++ b/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java @@ -58,6 +58,7 @@ public class BaseDataController { @GetMapping("debug") public R debug(@RequestBody BaseDataDebugForm form) { baseDataService.debug(baseDataWebMapper.web2vo(form.getBaseData()), form.getScriptContentTest()); + // return R.builderOk().data("debugResp", textValues).build(); return R.builder().build(); } diff --git a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java index a0ff591..26101b5 100644 --- a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java +++ b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java @@ -41,7 +41,7 @@ public enum ResultTypeMapEnum { } private final ResultTypeEnum resultType; - private final Class clazz; + private final Class clazz; /** * 根据 ResultTypeEnum 获取对应的类型 @@ -49,7 +49,7 @@ public enum ResultTypeMapEnum { * @param resultType resultType * @return 返回对应的类型 */ - public Class getClassByResultType(ResultTypeEnum resultType) { + public static Class getClassByResultType(ResultTypeEnum resultType) { return MAP.get(resultType); } diff --git a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java index c4ebb60..dc5cf5c 100644 --- a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java +++ b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java @@ -55,7 +55,7 @@ public enum ScriptTypeFactoryEnum { * @param scriptType scriptType * @return 返回对应的类型 */ - public ScriptEngineFactory getScriptEngineFactoryByScriptType(ScriptTypeEnum scriptType) { + public static ScriptEngineFactory getScriptEngineFactoryByScriptType(ScriptTypeEnum scriptType) { return MAP.get(scriptType); } diff --git a/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java b/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java index 043d749..1f711ed 100644 --- a/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java +++ b/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java @@ -15,7 +15,7 @@ public class RecScriptEngineManagerTest { @Test public void testRecScriptEngineManager() { RecScriptEngine recScriptEngine = RecScriptEngineManager.getRecScriptEngine(); - RecScriptEngineContext context = recScriptEngine.eval(ScriptTypeEnum.MVEL2, "1+2 +'e'", Integer.class); + RecScriptEngineContext context = recScriptEngine.eval(ScriptTypeEnum.MVEL2, "1+2", Integer.class); System.out.println(context); Integer retVal = context.getRealRetVal(); System.out.println(retVal); -- Gitee From 1be448f2dc0fb0649b8c8d250f8f7177edecada7 Mon Sep 17 00:00:00 2001 From: icanci Date: Sun, 13 Nov 2022 14:55:13 +0800 Subject: [PATCH 2/5] basedata debug --- .../admin/biz/model/BaseDataDebugResult.java | 60 ++++++++++ .../admin/biz/service/BaseDataService.java | 8 +- .../biz/service/impl/BaseDataServiceImpl.java | 13 ++- .../vueboot/src/views/ruleConfig/baseData.vue | 1 - .../views/ruleConfig/dialog/baseDataForm.vue | 108 +++++++++--------- .../controller/config/BaseDataController.java | 7 +- 6 files changed, 134 insertions(+), 63 deletions(-) create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/model/BaseDataDebugResult.java diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/model/BaseDataDebugResult.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/model/BaseDataDebugResult.java new file mode 100644 index 0000000..f885854 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/model/BaseDataDebugResult.java @@ -0,0 +1,60 @@ +package cn.icanci.rec.admin.biz.model; + +import java.io.Serializable; + +/** + * 基础数据Debug返回结果 + * + * @author icanci + * @since 1.0 Created in 2022/11/13 14:47 + */ +public class BaseDataDebugResult implements Serializable { + /** + * 前端传入的执行结果类型 + */ + private String reqResultType; + /** + * 脚本类型 + */ + private String scriptType; + /** + * 实际执行结果 + */ + private String realResult; + /** + * 执行过程中出现的异常 + */ + private String exceptionMessage; + + public String getReqResultType() { + return reqResultType; + } + + public void setReqResultType(String reqResultType) { + this.reqResultType = reqResultType; + } + + public String getRealResult() { + return realResult; + } + + public String getScriptType() { + return scriptType; + } + + public void setScriptType(String scriptType) { + this.scriptType = scriptType; + } + + public void setRealResult(String realResult) { + this.realResult = realResult; + } + + public String getExceptionMessage() { + return exceptionMessage; + } + + public void setExceptionMessage(String exceptionMessage) { + this.exceptionMessage = exceptionMessage; + } +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/BaseDataService.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/BaseDataService.java index 99a32c5..44da703 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/BaseDataService.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/BaseDataService.java @@ -1,11 +1,12 @@ package cn.icanci.rec.admin.biz.service; -import java.util.List; - +import cn.icanci.rec.admin.biz.model.BaseDataDebugResult; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.common.model.TextValue; import cn.icanci.rec.common.model.config.BaseDataVO; +import java.util.List; + /** * @author icanci * @since 1.0 Created in 2022/11/12 08:57 @@ -44,6 +45,7 @@ public interface BaseDataService extends BaseService { * * @param baseData baseData * @param scriptContentTest 测试参数 + * @return BaseDataDebugResult */ - void debug(BaseDataVO baseData, String scriptContentTest); + BaseDataDebugResult debug(BaseDataVO baseData, String scriptContentTest); } diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java index 37bb72f..edbf311 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java @@ -1,6 +1,7 @@ package cn.icanci.rec.admin.biz.service.impl; import cn.icanci.rec.admin.biz.mapper.BaseDataMapper; +import cn.icanci.rec.admin.biz.model.BaseDataDebugResult; import cn.icanci.rec.admin.biz.service.BaseDataService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.admin.dal.mongodb.daointerface.BaseDataDAO; @@ -17,6 +18,7 @@ import java.util.List; import javax.annotation.Resource; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import com.google.common.collect.Lists; @@ -85,7 +87,7 @@ public class BaseDataServiceImpl implements BaseDataService { } @Override - public void debug(BaseDataVO baseData, String scriptContentTest) { + public BaseDataDebugResult debug(BaseDataVO baseData, String scriptContentTest) { RecScriptEngineContext context; ResultTypeEnum resultType = baseData.getResultType(); if (resultType != null) { @@ -95,7 +97,12 @@ public class BaseDataServiceImpl implements BaseDataService { context = recScriptEngine.eval(baseData.getScriptType(), scriptContentTest); } Object realRetVal = context.getRealRetVal(); - System.out.println(realRetVal); - // TODO + + BaseDataDebugResult result = new BaseDataDebugResult(); + result.setReqResultType(baseData.getResultType() == null ? "无" : baseData.getResultType().getDesc()); + result.setScriptType(baseData.getScriptType().getDesc()); + result.setRealResult(String.valueOf(realRetVal)); + result.setExceptionMessage(context.getThrowable() == null ? StringUtils.EMPTY : context.getThrowable().getMessage()); + return result; } } diff --git a/rec-admin/rec-admin-views/src/main/resources/vueboot/src/views/ruleConfig/baseData.vue b/rec-admin/rec-admin-views/src/main/resources/vueboot/src/views/ruleConfig/baseData.vue index 2787029..c6e80bc 100644 --- a/rec-admin/rec-admin-views/src/main/resources/vueboot/src/views/ruleConfig/baseData.vue +++ b/rec-admin/rec-admin-views/src/main/resources/vueboot/src/views/ruleConfig/baseData.vue @@ -27,7 +27,6 @@ -